Свойство rootViewController не работает в проекте iOS 5 с xcode 4.2 - PullRequest
2 голосов
/ 04 ноября 2011

Привет, я только начал экспериментировать на iOS 5. Я создал проект без раскадровки и пытался добавить представления программно (без использования конструктора интерфейса вообще).У меня есть следующий код, но свойство окна rootViewController, кажется, не работает.Я сделал NSLog на self.tabController, и он показывает мне значение (не ноль), но с другой стороны, когда после self.window.rootViewController = self.tabController, я вывожу self.window.rootViewController, он дает мне ноль в консоли.эта проблема уже давно.Любая помощь будет оценена.

Мой метод didFinishLaunching следующий:

self.dataSource = [[[ADJWebDataSource alloc] init] autorelease];

ADJBrowseListingsViewController *browseListingsVC = [[ADJBrowseListingsViewController alloc] init];

ADJSecondViewController *secondVC = [[ADJSecondViewController alloc] init];
tabBarController = [[UITabBarController alloc] init];   
tabBarController.view.frame = CGRectMake(0, 0, 320, 460);
navController = [[UINavigationController alloc] initWithRootViewController:browseListingsVC];    
NSMutableArray* viewControllers = [[NSMutableArray alloc] initWithCapacity:2];

[viewControllers addObject:browseListingsVC];
[viewControllers addObject:secondVC];

[navController release];
[browseListingsVC release];
[secondVC release];

tabBarController.viewControllers = viewControllers;  
[viewControllers release]; 
browseListingsVC.dataSource = self.dataSource;   
NSLog(@"controller %@", self.tabBarController);   
self.window.rootViewController = self.tabBarController;   
NSLog(@"controller1 %@", self.window.rootViewController);
[self.window makeKeyAndVisible];

return YES;

Спасибо Вик

Ответы [ 2 ]

1 голос
/ 05 ноября 2011

Разобрался с помощью Firoze.На самом деле мне пришлось программно выделить и инициализировать self.window.Я был в замешательстве, поскольку мне никогда не приходилось делать это в iOS 4 или более ранней версии.Но потом я только что понял, что до iOS5 у каждого проекта был MainWindow.xib, в котором было выделено и инициализировано self.window. Теперь, если я не использую раскадровку в iOS5, файла .xib нет, мне нужно было бы выделить и инициализировать его самостоятельнов коде

1 голос
/ 04 ноября 2011

Когда вы используете раскадровку, почему вы все еще создаете объекты для контроллеров представления? Вы можете напрямую подготовить поток своих взглядов в раскадровке, добавить необходимые сегменты и т. Д. Если ваш контроллер представления является плавающим (без каких-либо сегментов), вы должны использовать метод "instantiateViewControllerWithIdentifier" в классе раскадровки.

Для контроллера представления, если вы хотите добавить навигацию в раскадровку, выберите контроллер представления, перейдите в меню «Редактор» -> «Встроить» и выберите контроллер навигации. Это добавит навигационный контроллер к вашему контроллеру представления.

...