“无法识别的select器发送到实例”错误
我的AppDelegate代码的一部分是:
UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController; UINavigationController *navigationController = [[tabBarController viewControllers] objectAtIndex:0]; PilotosViewController *playersViewController = [[navigationController viewControllers] objectAtIndex:0]; playersViewController.drivers = players;
但我得到这个例外:
– [UIViewController viewControllers] :无法识别的select发送到实例0x6a75770
***
终止应用程序由于未捕获的exception“NSInvalidArgumentException”,原因:' – [UIViewController viewControllers]:无法识别的select发送到实例0x6a75770'
错误在哪里?
我遇到了同样的问题,因为我遵循了作者的步骤,但是
UINavigationController *navigationController = [[tabBarController viewControllers] objectAtIndex:0];
这是导致崩溃的原因,因为navigationController
不在index=0
,我没有交换两个标签栏项目的位置,然后它工作。
您需要确保在XIB或故事板中正确连接。 当你发送[tabBarController viewControllers]
,你期待一个UITabBarController
的exception是向你显示该对象的typesViewController
。 这就是为什么你越来越'-[ViewController viewControllers]:
确保你的根视图控制器真的是一个选项卡视图控制器。
您显然在index = 0上接收不同types的对象。
如果您正在使用故事板,请打开导航器>查找特定控制器>查看关系。 这个顺序可以在引用其viewControllers集合时使用。