更改 UISplitView 中的 RootViewController

Posted

技术标签:

【中文标题】更改 UISplitView 中的 RootViewController【英文标题】:Change RootViewController inside UISplitView 【发布时间】:2011-06-22 19:50:13 【问题描述】:

我正在从 UISplitView XCode 模板为 iPad 开发一个小示例。它由窗口左侧显示的根控制器和右侧显示的详细视图组成。

我想要实现的目标非常简单(至少我是这么认为的),但我在文档中找不到实现它的方法。

我想用一个新控制器(例如作为对按下按钮时启动的事件的响应)替换根控制器(在左侧固定显示)。我试过这个:

ColorPicker *controlador = [[ColorPicker alloc] initWithNibName:nil bundle:nil];
[self.rootViewController presentModalViewController:controlador animated:YES];
[controlador release];

发生的情况是新推送的控制器填充了整个窗口,而我想要的是固定在左侧,并以开始时的两列格式显示。

【问题讨论】:

【参考方案1】:

您需要将modalPresentationStyle 设置为适当的值,

controlador.modalPresentationStyle = UIModalPresentationCurrentContext;

UIModalPresentationCurrentContext 指示视图控制器以模态方式出现在rootViewController 的框架内。

【讨论】:

【参考方案2】:

改用pushViewController:animated 可以解决此问题。关于ModalViewController,查看文档http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/ModalViewControllers/ModalViewControllers.html

【讨论】:

感谢阿祖和迪帕克。在这种情况下,这就是解决方案!

以上是关于更改 UISplitView 中的 RootViewController的主要内容,如果未能解决你的问题,请参考以下文章

iPad拆分视图,uisplitview中的多个主视图和详细视图

创建后如何更改 ViewController 的类型?

如何对 UISplitView 进行动画切换?

iOS 13 UISplitView 问题

如何在 UISplitView 的详细视图中清除 UIWebView 的内容

带有 UiSplitview 的滑动窗口,例如横向和纵向的 gmail iPad 应用程序