Прекратить использование Interface Builder - PullRequest
1 голос
/ 08 января 2012

При кодировании приложений для iPhone я никогда не использовал Interface Builder; думал, что это было слишком сложно и бесполезно.

Проблема в том, что я решил забрать заброшенный проект с открытым исходным кодом на GitHub, который использует Interface Builder, и я не могу перестать его использовать.

Казалось, что я должен начать с нуля программно кодирующие представления, поэтому я перешел к Info.plist приложения и удалил NSMainXIBFile (или что-то подобное) связанные ключи.

Как только я это сделал, приложение запускается, и консоль печатает сообщение: Ожидается, что приложения будут иметь контроллер корневого представления в конце запуска приложения .

Я не могу найти проблему здесь; Я сделал:

NSArray *controllers = [NSArray arrayWithObjects:controller1, controller2, nil];
UITabBarController *tabBarController = [[UITabBarController alloc] init];

[tabBarController setViewControllers:controllers];
[window addSubview:tabBarController.view];
[window makeKeyAndVisible];

Я пропускаю какой-то ключевой шаг при прекращении использования Interface Builder или моя ошибка в самом коде?

Ответы [ 3 ]

3 голосов
/ 08 января 2012

Вы не должны добавлять представление контроллера панели вкладок в окно как подпредставление.Вместо этого вы должны установить его как корневой контроллер окна:

window.rootViewController = tabBarController;
0 голосов
/ 08 января 2012

Попробуйте

@synthesize window = _window;


_window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[self.window makeKeyAndVisible];

А затем добавьте подпредставление в окно.

0 голосов
/ 08 января 2012

Необходимо правильно назначить свойство window.rootViewController, а не добавлять контроллер панели вкладок в качестве подпредставления.

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