Обратная совместимость UIWindow rootViewController - PullRequest
2 голосов
/ 05 сентября 2011

При создании нового проекта на основе представления Xcode 4 он создает эту строку в методе applicationDelegate didFinishLaunching:

self.window.rootViewController = self.viewController;

Но атрибут rootViewController появляется только в iOS 4.0.

Что я могу написать здесь, чтобы быть совместимым с iOS до 4.0?

P.S. : Из-за некоторых проблем я не смогу протестировать решение, поэтому, пожалуйста, все должно быть в порядке.

Ответы [ 2 ]

6 голосов
/ 05 сентября 2011

Используйте самоанализ, чтобы определить, есть ли у класса UIWindow это свойство во время выполнения, а если нет, просто добавьте представление контроллера представления как подпредставление в окно.

if ([UIWindow instancesRespondToSelector:@selector(rootViewController)]) {
    self.window.rootViewController = self.viewController;
} else {
    [self.window addSubview:self.viewController.view];
}
1 голос
/ 05 сентября 2011

фичек ответ точно.+1 к ответу.

Однако имейте в виду, что приложения для iOS 2 больше не принимаются в магазине .То же самое будет , вероятно , случится с iOS 3, когда выйдет iOS 5.По слухам, iOS 5 выйдет примерно через месяц.

...