将UINavigationController功能添加到具有已定义协议的容器控制器

时间:2013-01-24 23:52:17

标签: ios xcode delegates uinavigationcontroller protocols

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

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

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

还有更优雅的方式吗?似乎代码味道必须编写一个'in between'方法,对我的基本控制器中的每个协议方法执行此检查。有什么想法??

感谢

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

如果您不了解代表:Cocoa Fundamentals Guide

相关问题