2012-03-20 2 views
3

Часть моего 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 '

Где ошибка?

+1

Откуда вы знаете, что это раздел кода, который вызывает проблему? Установили ли вы контрольные точки и отслеживали выполнение кода с помощью отладчика? Ошибка говорит, что вы отправили viewControllers в экземпляр UIViewController, но ваш фрагмент кода показывает только экземпляры UITabBarController и UINavigationController, которые получают это сообщение. –

ответ

1

Вам необходимо убедиться, что вы правильно подключили устройство в своем XIB или раскадровке. Исключение показывает, что объект имеет тип ViewController, когда вы отправляете [tabBarController viewControllers], и вы ожидали UITabBarController. Вот почему вы получаете '-[ViewController viewControllers]:. Убедитесь, что ваш контроллер корневого представления действительно является контроллером представления табуляции.

11

я встретил тот же вопрос, потому что я последовал за шагами от автора, но

UINavigationController *navigationController 
    = [[tabBarController viewControllers] objectAtIndex:0]; 

это то, что, который сделал аварию, потому что navigationController не в index=0, я сделал обмен местоположениями два элемента панели вкладок, то это работает.

+1

Большое вам спасибо. Ты спасаешь мой день. – Philip007

+0

спасибо .. я просто застрял на полчаса. поиск сам не может найти ответ. прочитайте свой ответ в STO, решите мою проблему. :) Я проголосую за ваш ответ. –

0

Вы, очевидно, получая другой тип объекта на индекс = 0.

Если вы используете раскадровка туда и открытый Навигатор> найти конкретный контроллер> см Отношения. Этот порядок можно использовать при ссылке на его коллекцию viewControllers.

Смежные вопросы