UIWindow rootViewController的向后兼容性

Oli*_*ver 2 iphone backwards-compatibility uiviewcontroller uiwindow ios

在创建基于Xcode 4视图的新项目时,它会在applicationDelegate didFinishLaunching方法上创建该行:

self.window.rootViewController = self.viewController;
Run Code Online (Sandbox Code Playgroud)

但该属性rootViewController仅在iOS 4.0中出现.

我可以在这里写些什么来与4.0之前的iOS兼容?

PS:由于一些问题,我将无法测试解决方案,所以请它应该没问题.

Fil*_*lic 6

使用内省来检测UIWindow类是否在运行时具有该属性,如果没有,则只需将视图控制器的视图作为子视图添加到窗口中.

if ([UIWindow instancesRespondToSelector:@selector(rootViewController)]) {
    self.window.rootViewController = self.viewController;
} else {
    [self.window addSubview:self.viewController.view];
}
Run Code Online (Sandbox Code Playgroud)