我正在深入研究iOS开发并熟悉导航视图控制器。我正在尝试使用表格视图构建一个简单的应用程序,允许我向其添加对象。到目前为止,我有一个表格视图,在导航栏中添加了“+”按钮,允许我加载我的CreateObjectView并以模态方式显示它,以便用户可以定义新对象,但是当他们点击保存按钮时,我不会知道如何将该对象数据发送回创建包含对象数据的CreateObjectView的父视图。
当我创建子视图(CreateObjectView)时,我可以在将其推送到导航堆栈之前向其传递指向当前视图的指针,但这只是感觉很脏而且是圆形的。
我正在阅读协议和代表,我也可以使用这种方法,但它也感觉循环。
对于任何基于tableview或基于导航的应用程序来说,这个问题似乎是一个常见的设计问题,我应该如何在基于导航的iOS应用程序中访问距当前视图一级的视图?< / p>
非常感谢您提供所有帮助!
答案 0 :(得分:1)
起初感觉很圆,但这是正确的方式。在UINavigationController推送新视图控制器之前,您应该将委托设置为当前视图控制器 - 假设您是要与之通信的对象。当然,您可以将其设置在其他位置,例如中央Core Data处理程序。然后,当您需要通信时,使用您定义的方法调用委托。在看到Apple的食谱示例后,我已经完成了这样的几个导航应用程序,它确实运行良好。