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 协议。如果它随后将自己作为参数传递给EditViewControllerEditViewController 可以调用适当的委托方法来通知根视图控制器任何更改。

第一个最简单,第二个更灵活。

【讨论】:

代表团听起来很有趣。我将尝试实现这一点。谢谢

以上是关于Obj-C:从导航控制器中的 detailViewController 传回参数的主要内容,如果未能解决你的问题,请参考以下文章

从 MasterView 触发 DetailView 中的弹出窗口

UITableViewController detailView 从不推送

DetailView 中的编辑模式

在 splitViewController 的 detailView 中设置 barButtonItem 的标题

在 Splitview 中从一个 Detail View 控制器导航到另一个 Detail VC

主/详细故事板项目中的 IOS 导航栏在 ipad 上是透明的,但在 iphone 上不透明