- UIWindow setRootViewController:在4.0之前的等价物

oza*_*n k 11 iphone objective-c

我用4.0 sdk开始iphone开发.我想让我的应用程序与3.2兼容.我意识到 - [UIWindow setRootViewController:]被添加到版本4.0中的sdk.所以我应该在4.0之前的版本中使用什么呢?换句话说,除了分配窗口的主要子视图外,rootViewController属性本质上做什么?如果我扩展UIWindow并重新定义下面的方法,将来会出现问题吗?


- (void) setRootViewController:(UIViewController *)controller
{
    if (systemVersion < 4.0)
    {
        while(self.subviews.count > 0)
             [[self.subviews objectAtIndex:0] removeFromSuperview];
        [self addSubview:controller.view];
    }
    else [super setRootViewController:controller];
}
Run Code Online (Sandbox Code Playgroud)

bio*_*ffe 12

我们曾经这样做过:

    [window addSubview:[navigationController view]];
Run Code Online (Sandbox Code Playgroud)

这就是过去苹果公司的样品,仍然可以正常使用.