ios - ViewController 的多个委托(delegate)

标签 ios objective-c swift uiviewcontroller delegates

我有一个 ViewController,它充当两个 VC 的容器。这个类叫做 MasterDetailViewController。是自定义 View Controller 容器。 MasterDetailViewController 可以与 Master 或 Detail View Controller 通信,因此它们知道状态,例如:“显示细节 ViewController 的动画已启动”、“VC 的可见矩形”和类似的消息。问题是我需要不同的大师方法和不同的细节方法。

有两个协议(protocol)可以吗:
MasterViewControllerDelegate DetailViewControllerDelegate

MasterViewController 有两个属性 delegateM 和 delegateD,每个属性都符合每个协议(protocol)?

我问这个是因为委托(delegate)模式是 1:1 的关系,我从来没有见过这样使用它。

谢谢

最佳答案

在这种情况下,我所做的是将主 Controller 的弱引用传递给它的任何子 Controller 。我不称他们为委托(delegate)。当各种各样的类可以使用相同的委托(delegate)协议(protocol)时,委托(delegate)协议(protocol)就有意义了。在这种情况下,直接调用它即可。

关于ios - ViewController 的多个委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31687398/

相关文章:

iphone - 同一商场中两家商店之间的最短路径绘制

ios - 滚动时页脚覆盖在 tableview 单元格内容之上

ios - 快速通过 Mailjet 发送电子邮件的 Http POST 请求

ios - 在 Swift 上从 URL 加载/下载图像

ios - 以编程方式获取核心数据对象的大小(字节)

ios - CATextLayer 渲染具有截断和段落样式的 AttributedString

ios - 如何在主要 iOS 应用程序及其共享扩展之间使用相同的经过身份验证的用户 token

iOS 7.1 UISlider 设置ThumbTintColor

ios - iOS 中 UIDatePicker 的默认日期

ios - 如何在选择 tableviewcell 时运行函数(例如,按下单元格时更新 UIImageView)