2009-05-01 5 views
0

Мое приложение для iPhone работает нормально. Я добавил компонент в свой файл xib (индикатор активности). Я создал свой собственный метод init и использую имя XIB в методе init. Теперь я получаю эту ошибку, когда я делаю pushViewControlleriPhone - Почему я получаю эту ошибку при правильном отображении вида?

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "ModelThumbnailView" nib but the view outlet was not set.' 

Я знаю, что обычно выплывает, когда ViewController не отображается в представлении в XIb. Но все отображения в порядке. Я даже удалил класс и xib и создал их снова. Метод init также не возвращает нуль. Но я все еще получаю исключение, как только я вызываю pushViewController с объектом этого класса.

Любые идеи, почему?

Редактировать

был просто отладки и называется метод в ViewController перед вызовом pushViewController на нем. Отладчик показывает, что имя nib правильно установлено, пакет равен nil (coz thats, что происходит), но представление также равно nil. Не знаю, почему !!!

** Проводка кода в случае, если это помогает **

MyThumbnailViewController *modCont = [[[MyThumbnailViewController alloc] initWithNibName:@"MyThumbnailView" bundle:nil] autorelease]; 
[modCont setImgName:imgName count:numOfValues andIndex:0]; 

[[self navigationController] pushViewController:modCont animated:YES]; //This gives the exception 

Это viewDidLoad класса MyThumbnailViewController. Контроль никогда не достигает

- (void)viewDidLoad { 
    self.navigationItem.title = imageName; 
    self.navigationItem.hidesBackButton = NO; 
    [[self navigationController] setNavigationBarHidden:NO]; 
} 

Я удалил пользовательский метод инициализации, но все еще получал ту же ошибку.

решаемые

Просто создал все это снова, и теперь он работает нормально, хотя я не вижу каких-либо различий в обеих вещах!

ответ

0

Я уверен, что вы уже пробовали это, но на всякий случай вы установили точку останова в местоположении до вызова метода для обработки pushView и выполните код, чтобы увидеть, где генерируется исключение. Иногда это помогает. Я вернусь позже, чтобы узнать, что вы узнали, и посмотреть, могу ли я предложить дополнительную помощь.

+0

Пробовал. Метод init возвращает объект в порядке. Но как только я сделаю pushViewController, я получаю исключение. Между инициализацией и pushViewController нет инструкций. – lostInTransit

+0

Проверено все написания. Я не вижу никаких проблем, но ошибка остается :( – lostInTransit

0

Звучит странно, но для того, чтобы быть в безопасности, возможно, дважды проверьте следующее: Откройте IB и выберите «Владелец файла». Затем в Identity Inspector убедитесь, что для класса установлен ваш пользовательский контроллер просмотра. Откройте «Инспектор подключений» и убедитесь, что точка просмотра подключена к представлению в NIB (об этом жалуется исключение).

Сохраните файл XIB и закройте IB. Затем в XCode выберите Build-> Clean All Targets и попробуйте запустить приложение.

Я видел IB и XCode отдаляются друг от друга более чем один раз, я с нетерпением редактирования Просмотров в IB, что мое приложение никогда бы не сработал, потому что я не добавить их в мой проект по аварии. Таким образом, я чувствую вашу боль :-)

+0

Сделал все это до того, как я разместил вопрос :( – lostInTransit

0

У меня такая же ошибка. После того, как я выскочил, я снова подключил VIEW OUTLET (у владельца файла) к VIEW в VIEW CONTROLLER (я просто подключился к основной части экрана VIEW - извините, я новичок во всем этом, поэтому я уверен, что я не называю эти вещи правильным именем), и это исправило это. Раньше это работало, но что-то, что я сделал, должно было нарушить эту ссылку.

FogCityFun

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