【发布时间】:2019-10-31 16:46:47
【问题描述】:
MasterVC -> DetailVC -> ChildVC
我有一个SplitViewController,主端有一个表,细节端有第二个表。可以选择生成子 VC 的详细信息表单元格。目前,我在主服务器上定义了一个协议,让我知道何时选择了单元格。 (这样我可以根据需要更新详细信息方面。)我希望详细信息视图的子 vc 也接收该消息,但我不确定如何设置委托。我尝试的是在 ChildVC 中使用 prepare for segue 来获取对 MasterVC 的引用,如下所示:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let nav = segue.destination as? UINavigationController {
if let masterVC = nav.topViewController as? MasterVC {
masterVC = self
}
}
}
但遗憾的是,这似乎不起作用。我至少在正确的轨道上吗?谢谢!
【问题讨论】:
-
如果子 VC 在创建单元格时存在,难道你不能在指向子 VC 的单元格中创建第二个委托变量,然后在选中时让单元格调用这两个委托方法吗? (显然也使 `child VC 符合协议)
-
如果您需要超过 1 个更改监听器,您应该使用通知
-
更具体地检查 swift 中的观察者模式。
-
我确实切换到了通知 - 实施起来稍微容易一些,而且效果很好!谢谢大家。
标签: ios swift delegates protocols uisplitviewcontroller