从 navigationController 访问推送的控制器

Posted

技术标签:

【中文标题】从 navigationController 访问推送的控制器【英文标题】:Access to a pushed controller from navigationController 【发布时间】:2015-06-19 11:37:22 【问题描述】:

我尝试将一些属性从推送的视图控制器 (Viewcontroller B) 设置到导航控制器 (Viewcontroller A) 堆栈中的前一个视图。

但是,我尝试设置属性的对象(标题)在我设置其属性的那一刻为 nil。 (用断点检查)

ViewControllerB.m

 breapoint 1 -> ViewControllerA * missionVC = (ViewControllerA *) self.navigationController.viewControllers[n-2];



breakpoint 2 ->missionVC.header.title = companyName;
missionVC.header.subTitle = missionName;

[self.navigationController popViewControllerAnimated:YES];

在断点 1,missionVC 已正确初始化标头对象,但在断点 2,missionVC.header 为 nil,我不知道为什么。

【问题讨论】:

您正在创建前一个视图控制器的新对象。您应该将 Viewcontroller A 的引用传递给 B,然后设置 viewcontroller A 的值。您可以使用委托来传递对象。 我以为我恢复了以前的而不是创建新的,谢谢 那分钟是多少?您已经将视图控制器 A 的引用传递给 B。 是的,现在我将 A 的引用传递给 B,在 B 中设置引用的属性,然后重新启动 A 尝试在重新启动 A 后设置属性。即弹出后。 【参考方案1】:

您正在创建前一个视图控制器的新对象。您应该将 Viewcontroller A 的引用传递给 B,然后设置 viewcontroller A 的值。您可以使用委托来传递对象。

【讨论】:

以上是关于从 navigationController 访问推送的控制器的主要内容,如果未能解决你的问题,请参考以下文章

“连接” UiTableView 与 NavigationController

让 ViewControllers 访问 NavigationController 的好方法?

从 NavigationController 后退按钮返回多个 ViewController

从 UIViewController 切换到 navigationController 内的其他 ViewController

编译错误从应用委托获取 navigationController

从 AppDelegate 调用 navigationController