1

我设计了一个自定义容器视图控制器,它模仿路径或 facebook 之类的功能(滑动甲板效果)。为了与这些控制器通信,我定义了一个协议,允许向他们询问一些信息/提醒他们一些事件。

现在,我决定将这些子视图控制器之一嵌入到导航控制器中。不幸的是,导航控制器现在正在接收这些协议方法,我遇到了崩溃。

我的临时解决方案是创建一个中间方法,询问我要与之交谈的控制器是否实际上是导航控制器,如果是,则将消息发送到根。

有没有更优雅的方式来做到这一点?似乎代码有异味,必须编写一个“中间”方法来为我的基本控制器中的每个协议方法执行此检查。有什么想法吗??

谢谢

4

2 回答 2

2

您是否尝试过将父视图控制器嵌入 NavigationController 而不是特定的子控制器?通过这样做,您有效地允许所有子控制器参与导航。这将允许您正确使用您的协议。

于 2013-09-16T21:01:28.903 回答
0

听起来您需要使用委托设置您的子视图控制器并将其消息发送给其委托而不是其父级。

如果您不了解代表:可可基础指南

于 2013-01-25T00:13:51.533 回答