ios如何从单个视图争论到分割视图控制器

我有两个模板视图(一个是单视图,另一个是分割视图控制器),每个单独工作正常。 所以我在Single View上放了一个button,并在button上放置了一个Push Segue以进入Split View Controller。 当我按下button,我得到一个崩溃,说不能从外部UI导航控制器使用推。

好的,我把单视图模板放到UI导航控制器中,现在说:分割视图控制器不能被推送到导航控制器。

所以…我该怎么做?

谢谢 !

在正常的视图控制器中使用容器视图,覆盖整个视图区域,并且容器视图具有embedded到分割视图控制器

覆盖UISplitViewController并把它放在viewDidLoad中,如果你需要在它们之间进行通信:

YourLeftVC *masterViewController = (YourLeftVC *) [[self.viewControllers objectAtIndex:0] topViewController]; YourRightVC *detailViewController = [self.viewControllers objectAtIndex:1]; masterViewController.delegate = detailViewController; 

而不是呈现splitviewcontroller尝试设置为rootviewcontroller。

 self.view.window.rootViewController = splitViewController; 

按照苹果文档https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/ViewControllerCatalog/Chapters/SplitViewControllers.html

分割视图控制器必须始终是您创build的任何界面的根。 您必须始终将UISplitViewController对象的视图安装为应用程序窗口的根视图。

你可以在这里做的是创build一个自定义的拆分视图。

最坏的情况下,您可以创build第二个UIViewController来进行推送,并在其上创build一个具有UISplitViewController作为根的容器。

设置你的继续模式,而不是推,应该这样做。

编辑

其实这是行不通的。 你可以尝试的是把你的splitView在另一个故事板,并在你的buttonClicked:方法在代码中呈现它:

在SigleView.m中:

 - (IBAction)buttonClicked: { SplitViewController *splitVC = [[UIStoryboard storyboardWithName:@"SplitStoryBoard" bundle:nil] instantiateViewController]; [self presentViewController:splitVC animated:YES completion:nil]; } 

EDIT2

以前写的东西也不行。 我真的不知道你是否可以提供一个splitViewController(即不使你的rootViewController)。

但有些东西你可以做:

将您的splitView设置为您的应用程序的rootView,在启动时以模态方式呈现您的singleView,并且每当您想要closures它以让splitView有控制权时。 将有相同的效果比你的singleView呈现splitView。