ios如何从单一视图分割到分割视图控制器

drl*_*obo 14 ios segue ios7

我有两个模板视图(一个是单个视图,另一个是拆分视图控制器)每个单独工作正常.所以我在单视图上放了一个按钮,然后在按钮上输入Push Segue,转到Split View Controller.当我按下按钮时,我发现一个崩溃,说不能从外部UI导航控制器使用Push.

好的,我将单个视图模板放入UI导航控制器,它现在说:拆分视图控制器无法推送到导航控制器.

那么......我该怎么做?

谢谢 !

miO*_*iOS 6

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

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

  • 你会用动画使它看起来像模态segue吗? (3认同)

Cyb*_*Mew 6

在普通View Controller中使用容器视图,覆盖整个查看区域,并且该容器视图具有嵌入视图控制器的嵌入segue

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

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

masterViewController.delegate = detailViewController;
Run Code Online (Sandbox Code Playgroud)


shi*_*yuX -2

将你的 segue 设置为模态而不是推送,应该可以。

编辑

其实那是行不通的。您可以尝试将 splitView 放在另一个故事板中,并在您的 buttonClicked: 方法中以代码形式呈现它:

在 SigleView.m 中:

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

编辑2

之前写的也行不通。我真的想知道你是否可以提供一个 splitViewController (即不将其设为你的 rootViewController )。

但你可以做一些事情:

将您的 splitView 设置为应用程序的 rootView,在启动时以模态方式呈现您的 singleView,并且每当您想要时只需将其关闭即可让 splitView 进行控制。与使用 singleView 呈现 splitView 具有相同的效果。