2011-04-11 3 views
1

Я сделал простое приложение для навигации. он работает на iphone очень хорошо, но он не работает на симуляторе и устройстве ipad 3.2.Настройка rootViewController для ipad 3.2 не работает

in applicationdidfinish event;

MainViewController *viewController = [[MainViewController alloc] initWithNibName:@"MainView" bundle:nil]; 
[self.navigationController pushViewController:viewController animated:NO]; 
self.window.rootViewController = self.navigationController; 
[viewController release]; 

он говорит для этой линии:

self.window.rootViewController = self.navigationController; 

[UIWindow setRootViewController]: непризнанные селектор направлен например 0x4c22dd0

, но он работает на IPad 4.2 и выше.

Как я могу решить эту проблему для ipad 3.2?

ответ

5

UIWindow не имеет свойства rootViewController в iOS < 4.0. Таким образом, вам нужно будет проверить версию (Google его), а затем либо установить RootViewController, или добавить navigationController-х view как подвид в окно, как показано ниже, на основе какой версии ваш пользователь работает .:

[self.window addSubview:self.navigationController.view]; 

quick edit: чтобы проверить, можете ли вы использовать свойство rootViewController, вы можете проверить, возвращает ли [self.window respondsToSelector:@selector(setRootViewController)] TRUE или FALSE.

+0

большой, он работает на всех версиях IOS. Я думаю, мне не нужно проверять версию. потому что я не устанавливаю контроллер вида в IB. благодаря... – fulberto100

1

Правильный путь (не забудьте ":"!):

if ([self.window respondsToSelector:@selector(setRootViewController:)]) 
    self.window.rootViewController = self.tabBarController; 
else 
    [self.window addSubview: self.tabBarController.view]; 

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

  • Нет связанных вопросов^_^