这可能是非常基本的,但我不知道该怎么做,所以感谢任何回应......
我正在使用导航控制器,目前位于堆栈的第二级。在这里我设置一个字符串值并使用popViewControllerAnimated返回堆栈中的第一级。
从堆栈中的第二级使用该字符串值的最佳解决方案是什么?我试图在第二级手动设置第一级的值,但我一定做错了......
谢谢!
编辑:我m very new to both objective-c and C in general so i
仍然有点困惑:(
答案 0 :(得分:1)
考虑在程序中应用MVC模式 - 将字符串值存储在单独的全局可访问存储类中(在简单情况下,您可以使用应用程序委托或为此目的创建单个对象)。然后在您的二级控制器中设置存储中的值,在第一级中,您可以从存储中获取该值。
答案 1 :(得分:1)
使用委托模式会不会更好?您可以将顶级视图定义为第二级视图的委托;在将其推入堆栈之前设置第二级控制器的委托属性。
选择字符串后,在弹出第二级控制器之前,以字符串作为参数调用委托方法。
这样做的好处是,即使您有相同的第二级控制器的多个实例(例如在选项卡式界面中),它仍然可以工作。
答案 2 :(得分:1)
这不是最好的解决方案,但它有效:
[[self.navigationController.viewControllers objectAtIndex:0] setSmt:@"123"];
[self.navigationController popViewControllerAnimated:YES];
价值" smt"在父视图控制器中将更改。