Настройка rootViewController для ipad 3.2 не работает - PullRequest
1 голос
/ 12 апреля 2011

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

в событии applicationdidfinish;

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?

Ответы [ 2 ]

5 голосов
/ 12 апреля 2011

У UIWindow не было свойства rootViewController в iOS <4.0.Поэтому вам нужно будет проверить версию (google it) и затем либо установить rootViewController, либо добавить <code>view navigationController в качестве подпредставления к окну, как показано ниже, в зависимости от версии, которую использует ваш пользователь.1003 *

быстрое редактирование: чтобы проверить, можете ли вы использовать свойство rootViewController, вы можете проверить, возвращает ли [self.window respondsToSelector:@selector(setRootViewController)] ИСТИНА или ЛОЖЬ.

1 голос
/ 29 февраля 2012

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

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