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