为什么UISplitViewController不能成为UIWindow的rootViewController属性?

问题描述 投票:3回答:4

在iPhone应用程序中创建初始视图时,您可以将主UIWindow的IBOutlet rootViewController属性设置为默认视图控制器,但这不适用于UISplitViewController。

如果执行此操作,我不会收到任何编译错误,并且该应用程序会运行,但是在应用程序启动时不会显示任何屏幕。

Apple推荐UISplitViewController的方法是在您的应用程序委托启动方法中执行以下操作:

[window addSubview:splitViewController.view];

我只是想知道为什么UISplitViewController需要这种不同的方法。

objective-c ios cocoa-touch
4个回答
4
投票

当然可以。实际上,这就是Xcode 4.0.2中基于拆分视图的应用程序模板(SDK 4.3)所做的。


1
投票

您确定不可能吗? rootViewController必须是UIViewController,而UISplitViewController is


1
投票

我制作UISplitViewController UIWindow rootViewController没有任何问题。实际上,Split View应用程序模板会生成以这种方式配置应用程序的代码。


0
投票
DLog(@"Method: homeScreenViewController");
        
    UISplitViewController *svc = (UISplitViewController*)[self.storyboard instantiateViewControllerWithIdentifier:@"HomeViewiPad"];

    //[self presentViewController:svc animated:YES completion:nil];
    
    UIWindow *window = [[[UIApplication sharedApplication] windows] objectAtIndex:0];
    window.rootViewController = svc;
    [window makeKeyAndVisible];
    
    /*
    for (UIWindow *window in [[UIApplication sharedApplication] windows])
    {
        if ([window screen] == [UIScreen mainScreen])
        {
            window.rootViewController = svc;
            //UIViewController *con =  [self.storyboard instantiateViewControllerWithIdentifier:@"HomeiPad"];
            //[window addSubview:con.view];
            [window makeKeyAndVisible];
        }
    }
     */
© www.soinside.com 2019 - 2024. All rights reserved.