1

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

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

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

谢谢!

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

4

3 回答 3

1

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

于 2009-12-11T10:16:30.013 回答
1

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

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

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

于 2010-01-29T23:17:30.350 回答
1

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

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

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

于 2011-03-08T17:12:40.907 回答