【发布时间】:2017-07-26 10:04:51
【问题描述】:
我有连接到 2 个视图控制器的主视图控制器。 我在有 didRecive(data:Data) 委托函数的地方制定了协议。
protocol MainViewControllerDelegate: class {
func didReciveDepartment(response:DepartmentResponse)
}
在主视图控制器中,我声明了委托变量。
weak var delegate: DepartmentMainViewControllerDelegate?
在为 segue 做准备时,我将此委托设置为 viewCotnroller 的。像这样-
if segue.identifier == "productsEmbedded" {
let vc = segue.destination as! DepartmentProductsViewController
delegate = vc
}
if segue.identifier == "shopsEmbedded" {
let vc = segue.destination as! DepartmentShopsViewController
vc.delegate = self
delegate = vc
}
我在 DepartmentShopsViewController 中只有有线行为委托触发器,而 DepartmentProductsViewController 无法获得此委托,我注释掉了商店和产品获得了此委托,所以这意味着我不能为 2 个控制器使用相同的委托?
【问题讨论】:
-
你想有一个单独的变量....如何将两个对象保存在同一个变量中
-
刚刚做了第二个代表 var 并没有工作。
-
productsEmbeddedsegue 中的`delegate = vc` 是什么? -
你还得给第二个代表打电话……
-
您在哪里创建了协议?以及哪个控制器设置了委托?