iphone:使用navigationcontroller pop发回字符串值

时间:2009-12-11 10:01:09

标签: iphone string stack navigationcontroller

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

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

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

谢谢!

编辑:我m very new to both objective-c and C in general so i仍然有点困惑:(

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:1)

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

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

价值" smt"在父视图控制器中将更改。