Obj-C:从导航控制器中的 detailViewController 传回参数
Posted
技术标签:
【中文标题】Obj-C:从导航控制器中的 detailViewController 传回参数【英文标题】:Obj-C : Passing parameters back from a detailViewController in a navigation controller 【发布时间】:2010-06-12 00:41:12 【问题描述】:您好,我在 iPhone 应用程序上使用导航控制器。当我将控制器推入导航堆栈时,我能够向前传递数据,但是当我弹出控制器时,如何将数据传回。
我基本上想要实现的是根导航控制器视图显示许多可以编辑的字段。然后,用户单击要编辑的字段之一,并将带有用户要编辑的字段名称的 EditViewController 推送到堆栈上。现在用户输入字段的新值并按下保存弹出视图控制器。那么如何将 editViewController 中的值返回到根导航控制器视图呢?
【问题讨论】:
【参考方案1】:有几种方法:
推送EditViewController
时,将指针传递给要修改的值,而不是值本身。这样,控制器可以在弹出之前通过指针修改值。
实施委托,您的根视图控制器实施EditViewControllerDelegate
协议。如果它随后将自己作为参数传递给EditViewController
,EditViewController
可以调用适当的委托方法来通知根视图控制器任何更改。
第一个最简单,第二个更灵活。
【讨论】:
代表团听起来很有趣。我将尝试实现这一点。谢谢以上是关于Obj-C:从导航控制器中的 detailViewController 传回参数的主要内容,如果未能解决你的问题,请参考以下文章
从 MasterView 触发 DetailView 中的弹出窗口
UITableViewController detailView 从不推送
在 splitViewController 的 detailView 中设置 barButtonItem 的标题