как я могу решить эту ошибку: NSInvalidArgumentException', причина: '-[ViewController viewControllers]: нераспознанный селектор

Я хочу отправить некоторую информацию в UITableView, поэтому мне нужно получить местоположение этого представления.

и это код внутри AppDelegate:

player = [[player1Data alloc] init];
player.name = @"Dave Brubeck";
player.game = @"Texas Hold’em Poker";
player.rating = 2;
[playersArray addObject:player];
// to get the player1ViewController
UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
UITabBarController *tabBarController = [[navigationController viewControllers] objectAtIndex:0];
player1ViewController *playersViewController = [[tabBarController viewControllers] objectAtIndex:0];
playersViewController.playersArray = playersArray;
return YES;  

ошибка появлялась по адресу:

player1ViewController *playersViewController = [[tabBarController viewControllers] objectAtIndex:0];

то xcode показывает, что: Thread 1: signal SIGABRT

консоль показывает:

Приложение завершает работу из-за необработанного исключения "NSInvalidArgumentException", причина: "-[ViewController viewControllers]: нераспознанный селектор отправлен в экземпляр 0x687a880"

вот мой макет раскадровки, я не уверен, что это правильное расположение.

Контроллер навигации→Контроллер просмотра (с кнопкой)→Контроллер панели вкладок→Таблица (где я хочу показать информацию об игроках.)

Так что извините, мой английский не очень хорошо, надеюсь, вы, ребята, понимаете, о чем я говорю. СПАСИБО!!


person Edi3    schedule 16.08.2012    source источник


Ответы (1)


Часть инициализации UITabBarController является проблемой. Назначение viewconroller из стека navigationcontroller на UITabBarController??

Подготовьте массив VC, который вам нужно показать в UITabBarController, и загрузите его в свойство viewcontrollers UITabBarController.

person Lithu T.V    schedule 16.08.2012
comment
На самом деле, я не очень понимаю смысл назначения контроллера представления из стека навигационного контроллера в UITabBarController. Кстати, если я вытащу контроллер представления (с помощью кнопки), а затем изменю расположение раскадровки следующим образом: Контроллер панели вкладок → Контроллер навигации → Табличный вид (где я хочу показать информацию об игроках). Он работает успешно. Поэтому я совершенно не понимаю, как реализовать процесс, при котором, если я нажму кнопку, панель вкладок с табличным представлением будет выдвинута перед экраном. - person Edi3; 16.08.2012