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

问题描述 投票:14回答:6

我有两个模板视图(一个是单个视图,另一个是拆分视图控制器),每个都可以正常工作。因此,我在“单一视图”上放置了一个按钮,并在按钮上放置了“推播选择”以转到“拆分视图控制器”。当我按下按钮时,出现崩溃提示我无法从外部UI导航控制器使用“推入”。

好,所以我将单个视图模板放入UI导航控制器,现在它说:拆分视图控制器不能推到导航控制器。

所以...我该怎么做?

谢谢!

ios ios7 segue
6个回答
6
投票
如果需要在UISplitViewController之间进行通信,请覆盖UISplitViewController并将其放在viewDidLoad中:

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


6
投票
self.view.window.rootViewController = splitViewController;

1
投票
拆分视图控制器必须始终是您创建的任何接口的根。您必须始终从UISplitViewController对象安装该视图作为应用程序窗口的根视图。

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


0
投票

0
投票
不通过导航控制器推动拆分视图控制器可能,但是有另一种方法可以完成工作
您可以创建视图控制器,并将拆分视图控制器添加为子视图,然后可以通过导航控制器推送创建的视图控制器。它将显示您的拆分视图控制器,您可以同时使用主视图和细节。

*请记住将yoursplitviewcontroller类添加到情节提要中的自定义类中

[note

splitcontroller->(主要,详细信息)

let splitVC = getViewController(storyBoardName: "story board name", viewControllerName: "split view controller identifier") as! yoursplitviewcontroller view.addSubview(splitVC.view) view.bounds = splitVC.view.bounds addChild(splitVC) func getViewController(storyBoardName: String, viewControllerName: String) -> UIViewController{ let storyBoard = UIStoryboard(name: storyBoardName, bundle: nil) return storyBoard.instantiateViewController(identifier: viewControllerName) }
如果有什么不清楚的地方,请给我发邮件-> [email protected]

-2
投票

编辑

实际上不起作用。您可以尝试将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,并且只要您希望关闭它,就可以让splitView拥有控制权。与让singleView呈现splitView具有相同的效果。

© www.soinside.com 2019 - 2024. All rights reserved.