1

我需要在我拥有的两个视图控制器之间传递信息。过去,我通过将第二个视图的 .h 导入到第一个视图的代码中,然后在第一个视图中实现 prepareForSegue 并在那里设置第二个视图的值来完成此操作。但是,现在我的 2 个视图控制器位于导航控制器中,因此没有与过渡回根视图控制器相关联的 segue(因为它是用 完成的[self.navigationController popToRootViewControllerAnimated:YES])。

有没有一种类似于 prepareForSegue 的方法可以与 UINavigationController pop 一起使用?或者我是否必须设置委托或 NSNotifications 才能将信息发送回根视图?

4

2 回答 2

0

您可以尝试实现自己的

@interface MyUINavigationController : UINavigationController  <UINavigationBarDelegate>

然后实现:

- (void)navigationBar:(UINavigationBar *)navigationBar didPopItem:(UINavigationItem *)item

-(BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPopItem:(UINavigationItem *)item

然后,您可以将变量存储在 UINavigationBar 中,并通过调用如下方式使用它们:

MyNavigationController *navi =self.navigationController;
navi.variable = myvariable;
于 2015-02-16T23:27:17.647 回答
0

push它们位于UINavigationController. 在 StoryBoard 中,从一个视图拖到下一个视图,然后选择push作为 segue 类型并为 segue 设置标识符。然后您可以正常设置目标视图控制器。

要传回信息,您需要设置一个委托,因为推送的视图控制器不应该有关于谁调用它的详细信息。

于 2012-09-24T13:49:13.383 回答