iphone:用导航控制器弹出发送回字符串值

发布于 2024-08-14 06:50:12 字数 252 浏览 8 评论 0原文

这可能是非常基本的,但我只是不知道该怎么做,所以感谢您的任何回复...

我正在使用导航控制器,目前位于堆栈的第二级。这里我设置了一个字符串值并使用 popViewControllerAnimated 返回到堆栈中的第一级。

使用堆栈中第二层的字符串值的最佳解决方案是什么?我尝试在第二级中手动设置第一级中的值,但我一定做错了什么......

谢谢!

编辑:我对 Objective-C 和 C 都很陌生,所以我还是有点困惑:(

This may be very basic, but I just can`t figure out what to do, so thanks for any response...

I`m using a navigationcontroller and are currently on the second level in the stack. Here i set a string value and use popViewControllerAnimated to go back to first level in the stack.

What might be the best solution to use that string value from second level in the stack? I`ve tried to set a value in the first level manually in the second level, but I must be doing something wrong...

Thanks!

edit: Im very new to both objective-c and C in general so im still a bit confused :(

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

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

发布评论

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

评论(3

蓝礼 2024-08-21 06:50:12

考虑在程序中应用 MVC 模式 -将字符串值存储在单独的全局可访问存储类中(在简单的情况下,您可以使用应用程序委托或为此目的创建一个单例对象)。然后在第二级控制器中设置存储中的值,在第一级控制器中从存储中获取该值。

Consider applying MVC pattern in your program - store the string value in a separate globally accessible storage class (in simple cases you can use application delegate or create a singleton object for this purpose). Then in your 2nd level controller you set the value in the storage and in 1st level you get it from the storage.

数理化全能战士 2024-08-21 06:50:12

使用委托模式不是更好吗?您可以将顶级视图定义为第二级视图的委托;您可以在将第二级控制器压入堆栈之前设置其委托属性。

选择字符串后,在弹出第二级控制器之前,以字符串作为参数调用委托方法。

这样做的优点是,即使您有同一第二级控制器的多个实例(例如在选项卡式界面中),它仍然可以工作。

Would it not be better to use a delegate pattern? You could define your top-level view as a delegate of the second-level view; you set the delegate property of the second-level controller before pushing it on the stack.

Once the string has been selected, before popping the second-level controller, call the delegate method with the string as its argument.

The advantage of that would be that it'd still work even if you have multiple instances of the same 2nd level controller (eg in a tabbed interface).

难以启齿的温柔 2024-08-21 06:50:12

这不是最好的解决方案,但它有效:

[[self.navigationController.viewControllers objectAtIndex:0] setSmt:@"123"];
[self.navigationController popViewControllerAnimated:YES];

父视图控制器中的值“smt”将会改变。

It's not the best solution, but it works:

[[self.navigationController.viewControllers objectAtIndex:0] setSmt:@"123"];
[self.navigationController popViewControllerAnimated:YES];

The value "smt" in the parent view controller will change.

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