在Objective-C中从UIViewController显示一个SplitViewController

Jes*_*ala 1 objective-c ipad uisplitviewcontroller ios

我正在用一个按钮开发一个ViewController(登录应用程序),当我按下这个按钮时我想要像这样出现我的UISplitView:

- (IBAction)loadSplitViewController:(id)sender {

    [self showSplitViewController];
}
Run Code Online (Sandbox Code Playgroud)

为我的splitViewController创建开发的代码是这样的:

-(void)showSplitViewController{

    UIStoryboard *mainStoryboard                    = [UIStoryboard storyboardWithName:@"MainStoryboard_iPad" bundle: nil];

    LeftViewController      *leftViewController     = [mainStoryboard instantiateViewControllerWithIdentifier:@"LeftViewController"];
    RightViewController     *rightViewController    = [mainStoryboard instantiateViewControllerWithIdentifier:@"RightViewController"];

    UINavigationController  *leftNavController      = [[UINavigationController alloc] initWithRootViewController:leftViewController];
    UINavigationController  *rightNavController     = [[UINavigationController alloc] initWithRootViewController:rightViewController];

    UISplitViewController   *splitViewController    = [[UISplitViewController alloc] init];
    splitViewController.viewControllers             = [NSArray arrayWithObjects:leftNavController, rightNavController, nil];

    leftViewController.delegate     = rightViewController;
    splitViewController.delegate    = rightViewController;

    [self presentViewController:splitViewController animated:YES completion:^{}];
}
Run Code Online (Sandbox Code Playgroud)

事情是...如果我用于显示我的splitViewController这一行:

[self presentViewController:splitViewController animated:YES completion:^{}];
Run Code Online (Sandbox Code Playgroud)

抛出一个错误

我也尝试过

[self.view addSubview:splitViewController.view];
Run Code Online (Sandbox Code Playgroud)

但这样我的splitViewController永远不会旋转,并且委托也不能正常工作......我不希望我的splitViewController成为我的viewController的子视图,我希望它看起来更像是一个独立的modalView

任何帮助,我会很感激

提前致谢

rde*_*mar 5

拆分视图控制器确实应该是窗口的根视图控制器(实际上Apple说它必须是,但似乎有一些例子,这不是真的).您可以将窗口的根视图控制器切换为拆分视图控制器,而不是显示它.

self.view.window.rootViewController = splitViewController;
Run Code Online (Sandbox Code Playgroud)