iOS - 导航控制器堆栈问题

Posted

技术标签:

【中文标题】iOS - 导航控制器堆栈问题【英文标题】:iOS - Navigationcontroller stack issue 【发布时间】:2014-01-24 16:11:14 【问题描述】:

从根视图导航堆栈中获取 tabBarController。当我从 tabBar 控制器获取 selectedcontroller 时,应用程序崩溃。

TabController *TabBar = (TabController *)viewController.navigationController.presentedViewController; 
UINavigationController *selectedNCinTab = (UINavigationController *)TabBar.selectedViewController;

当执行上面的行时会崩溃。原因如下。

-[UINavigationController selectedViewController]:无法识别的选择器发送到实例 0xf4b0be0

【问题讨论】:

试试 (UINavigationController *)(TabBar.selectedViewController) 你得到标签栏的对象了吗?尝试在控制台中打印它。它与您创建的对象相同吗? 是的,我正在获取标签栏实例... 【参考方案1】:

您可能需要在第一行访问 navigationController.topViewController 而不是presentedViewController

【讨论】:

以上是关于iOS - 导航控制器堆栈问题的主要内容,如果未能解决你的问题,请参考以下文章

斯威夫特/iOS。从导航堆栈中删除几个视图控制器

iOS UINavigationController - 从导航堆栈中删除视图控制器确实会释放它

iOS在导航堆栈中的视图控制器之间循环

Ios 导航 - 自定义后退按钮或从堆栈中删除视图控制器?

iOS 简单视图从导航堆栈错误弹出

Swift iOS - 如何打印导航堆栈中尚未推送的所有子视图控制器的列表