UIWindow rootViewController的向后兼容性

时间:2011-09-05 00:19:18

标签: iphone ios uiviewcontroller backwards-compatibility uiwindow

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

self.window.rootViewController = self.viewController;

但属性rootViewController仅在iOS 4.0中出现。

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

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

2 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:1)

fichek的答案是完全正确的。回答+1。

但是,请记住iOS 2应用are no more accepted in the store。当iOS 5问世时,iOS 3会发生可能。据传,iOS 5将在一个月内推出。