UISplitViewController:实际设置时不显示

时间:2015-02-06 17:23:08

标签: ios objective-c uiviewcontroller storyboard uisplitviewcontroller

我正在尝试使用故事板设置splitviewcontroller。下面的代码是我到目前为止的代码。但是,它显示黑屏。我有一个故事板名称Main。我在故事板中有两个viewcontrollers。我从一篇文章中读到了如何做到这一点,但无法让它发挥作用。我必须遗漏一些小事。任何帮助表示赞赏。

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.

    UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main"
                                                 bundle:nil];
  ViewController *firstVC =  [sb instantiateViewControllerWithIdentifier:@"ViewController"];
    ViewController1 *secondVC =  [sb instantiateViewControllerWithIdentifier:@"ViewController1"];

    CGRect frameFirstVC = firstVC.view.frame;
    frameFirstVC.size.width = 100;

    CGRect frameSecondVC = secondVC.view.frame;
    frameSecondVC.size.width = 100;

    UISplitViewController* splitVC = [[UISplitViewController alloc] init];
    splitVC.viewControllers = [NSArray arrayWithObjects:firstVC, secondVC, nil];

    [self.window addSubview:splitVC.view];
    [self.window makeKeyAndVisible];


    return YES; }

1 个答案:

答案 0 :(得分:0)

您不应直接将拆分视图控制器的视图添加为窗口的子视图。而是设置窗口的rootViewController属性:

self.window.rootViewController = splitVC;

除了配置视图层次结构外,还会为应用程序设置其他状态和布局信息,以便正确显示和使用拆分视图控制器。

(我应该指出,您可以将拆分视图控制器放在故事板中,将其标记为初始视图控制器,然后将该故事板用作应用程序的主要部分,而不是编写此代码的任何接口文件。但这是一个更大的变化。)