“无法识别的选择发送到实例” 的错误我的AppDelegate代码
部分是:“无法识别的选择发送到实例” 的错误我的AppDelegate代码
UITabBarController *tabBarController
= (UITabBarController *)self.window.rootViewController;
UINavigationController *navigationController
= [[tabBarController viewControllers] objectAtIndex:0];
PilotosViewController *playersViewController
= [[navigationController viewControllers] objectAtIndex:0];
playersViewController.drivers = players;
但我得到这个异常:
- [UIViewController中viewControllers]:无法识别的选择发送到实例0x6a75770
***
由于未捕获的异常'NSInvalidArgumentException',原因:' - [UIViewController viewControllers]:无法识别的选择器发送到实例0x6a75770'
错误在哪里?
您需要确保在XIB或故事板中正确连接东西。例外情况是,当您发送[tabBarController viewControllers]
并且您期待UITabBarController
时,该对象的类型为ViewController
。这就是为什么你得到'-[ViewController viewControllers]:
。确保你的根视图控制器真的是一个选项卡视图控制器。
我遇到了同样的问题,因为我接着笔者的步骤,但
UINavigationController *navigationController
= [[tabBarController viewControllers] objectAtIndex:0];
这是它取得的崩溃,因为navigationController
不在index=0
, 我做交换的位置两个标签栏项目,然后它的作品。
非常感谢。你节省了我的一天。 – Philip007 2012-08-04 20:25:18
谢谢..我刚刚呆了半小时。自己搜索无法找到答案。在STO阅读你的答案,解决了我的问题。 :)我投你的答案。 – 2012-10-24 08:39:36
显然你是在指数接收不同类型的对象= 0
如果您使用的故事板去那里,打开导航>查找特定的控制器>看关系。这个顺序可以在引用其viewControllers集合时使用。
你怎么知道这是导致问题的代码段?您是否设置了断点并使用调试器跟踪了代码执行?该错误表示您已将viewController发送给UIViewController实例,但您的代码片段仅显示接收该消息的UITabBarController和UINavigationController实例。 – 2012-03-20 12:44:54