Навигационный контроллер push nil view Ошибка контроллера - PullRequest
1 голос
/ 02 июня 2011

У меня проблемы с контроллером навигации в моем приложении.Переход от RootViewController к UITableViewController работает нормально.Теперь я хочу иметь еще один уровень детализации, поэтому пользователи выбирают элемент из списка, и появляется новый экран, например:

RootViewController --> TableViewController --> ItemViewController

Я использовал точно такой жекод, который переключает первые представления, но я получаю:

Application tried to push a nil view controller on target <UINavigationController...

Код идентичен первому, так как это может быть ноль?

В RootViewController.h:

@interface RootViewController : UIViewController {
    IBOutlet TableViewController *tableViewController;
}

@property (nonatomic, retain) TableViewController * tableViewController;

В файле .m я синтезирую свойство и затем использую кнопку для вызова:

[self.navigationController pushViewController:tableViewController animated:YES];

В TableViewController.h:

#import "ItemDetailViewController.h"

@class TableViewController;

@interface TableViewController : UITableViewController {
    IBOutlet ItemDetailViewController * itemDetailViewController;
}

@property (nonatomic, retain) ItemDetailViewController * itemDetailViewController;

@end

И снова, я синтезирую его в файле .m и использую код для добавления нового представления в didSelectRowAtIndexPath:

[self.navigationController pushViewController:itemDetailViewController animated:YES];

Когда вы нажимаете наэлемент я получаю сообщение об ошибке выше.У кого-нибудь есть идеи, почему это происходит?

1 Ответ

1 голос
/ 02 июня 2011

Эта самая распространенная причина этой ошибки - не удается подключить itemDetailViewController к реальному объекту в IB. Обратите внимание, что обычно вы должны указывать IBOutlet на свойстве, а не на иваре.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...