我无法遵从委托并在两个视图控制器之间传递信息。我好像不明白我做错了什么。我希望能够从CustomCell VC中的一个分段控件传递信息,以便在CreateEvent VC中点击按钮后接收和显示该控件。以下是相关代码:
自定义单元格VC:
class CustomCell: CreateEventVCDelegate {
var ageDescription : String = String() // setup global variable
func sendageDesciptiongetData(data:String) {
print(ageDescription)
}
@IBAction func ageChanged(sender: UISegmentedControl) {
switch age.selectedSegmentIndex {
case 0:
print("Under 18")
var ageDescription = "under 18"
case 1:
print("Over 18")
var ageDescription = "over 18"
case 2:
print("Strictly over 21")
var ageDescription = "strictly over 21"
default:
print("Other")
}
}
}
创建事件VC:
protocol CreateEventVCDelegate {
func sendageDescriptiongetData(ageDescription: String)
}
class CreateEventVC: UIViewController {
var delegate: CreateEventVCDelegate?
@IBAction func saveButtonTapped(sender: UIBarButtonItem) {
var ageDescription = ""
delegate!.sendageDescriptiongetData(ageDescription)
}
}
最佳答案
我认为你的问题是你需要一个CreateEventVC
在CustomCell
内部的实例,这样你就可以写:
createEventVC.delegate = self
内部
CustomCell
。无论如何,我认为您不需要委派,如果您在
CustomCell
内部有一个CreateEventVC
的实例,您可以从CreateEventVC
调用CreateEventVC
的公共/内部函数:cell.sendageDesciptiongetData(data)