Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 为什么可以';UISplitViewController不是UIWindow的rootViewController属性吗?_Objective C_Ios_Cocoa Touch - Fatal编程技术网

Objective c 为什么可以';UISplitViewController不是UIWindow的rootViewController属性吗?

Objective c 为什么可以';UISplitViewController不是UIWindow的rootViewController属性吗?,objective-c,ios,cocoa-touch,Objective C,Ios,Cocoa Touch,在iPhone应用程序中创建初始视图时,可以将主UIWindow的IBOutlet rootViewController属性设置为默认视图控制器,但这不适用于UISplitViewController 如果我这样做,我不会收到任何编译错误,应用程序会运行,但在应用程序启动时不会显示任何屏幕 Apple docs为UISplitViewController推荐的方法是在应用程序委托启动方法中执行以下操作: [window addSubview:splitViewController.view];

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

如果我这样做,我不会收到任何编译错误,应用程序会运行,但在应用程序启动时不会显示任何屏幕

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

[window addSubview:splitViewController.view];

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

你确定这不可能吗
rootViewController
需要是
UIViewController
并且
uiplitviewcontroller
UIViewController
。尝试重新启动Xcode。如果这不起作用,很有可能是一个bug,所以我建议你把它提交给苹果的bug reporter。

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

不过,拆分视图控制器仅适用于iPad,而不是iPhone。你是在iPhone项目上尝试这个吗

更新


由于iOS 8,它在所有设备上都可用。

我在制作UISplitViewController UIWindow rootViewController时没有任何问题。事实上,Split View应用程序模板会生成这样配置应用程序的代码

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];
        }
    }
     */

//vKj

我使用xcode 4和low中的分割视图模板创建了一个新项目,现在可以将UIWindow的rootViewController属性设置为UISplitViewController。我犯的错误是没有正确地实例化详细的子视图控制器(右边的那个)。谢谢你的迅速回复。好吧,我现在觉得有点傻。这是可能的,只要你不是一个完全的木偶。谢谢大家的回答。