从 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