Obj-C :从导航控制器中的detailViewController传回参数

发布于 2024-09-05 13:00:52 字数 245 浏览 1 评论 0原文

您好,我正在 iPhone 应用程序上使用导航控制器。当我将控制器推入导航堆栈时,我能够向前传递数据,但是当我弹出控制器时如何将数据传递回来。

我基本上想要实现的是根导航控制器视图显示许多可以编辑的字段。然后,用户单击要编辑的字段之一,然后将带有用户想要编辑的字段名称的 EditViewController 推送到堆栈上。现在,用户输入字段的新值并按“保存”以弹出视图控制器。那么如何将 editViewController 中的值返回到根导航控制器视图呢?

Hi I am using a navigation Controller on an iPhone app. I am able to pass data forward when I push a controller into the navigation stack but how do I pass data back when I pop the controller.

What I am basically trying to achieve is the root navigation controller view displays a number of fields that can be edited. A user then clicks on one of the fields to be edited and a EditViewController is pushed onto the stack with the name of the field the user wants to edit. Now the users enters the new value of the field and presses save to pop the view controller. So how do I get the value from the editViewController back to the root navigation controller view?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

超可爱的懒熊 2024-09-12 13:00:53

有几种方法:

  • 当推送 EditViewController 时,将其传递给要修改的值的指针,而不是值本身。这样,控制器可以在弹出之前通过指针修改该值。
  • 实现委托,其中根视图控制器实现 EditViewControllerDelegate 协议。如果随后将其自身作为参数传递给 EditViewController,则 EditViewController 可以调用适当的委托方法来通知根视图控制器任何更改。

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

There's a couple of approaches:

  • When pushing your EditViewController, pass it a pointer to the value to be modified, not the value itself. That way, the controller can modify the value through the pointer before it is popped.
  • Implement a delegation, where your root view controller implements an EditViewControllerDelegate protocol. If it then passes itself as a parameter to the EditViewController, the EditViewController can call appropriate delegate methods to inform the root view controller of any changes.

The first is simplest, the second the more flexible.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文