如何将视图控制器推送到 UISplitViewController

Posted

技术标签:

【中文标题】如何将视图控制器推送到 UISplitViewController【英文标题】:How to push a view controller over the UISplitViewController 【发布时间】:2010-11-05 01:37:37 【问题描述】:

如何将视图控件推送到 UISPlitViewController?或者如何获取 UISplitViewController 的父 UIViewController?

我想要做的是当用户点击一个按钮时,UiViewController 将占用进入 ipad 视图。

我目前有这个层次结构:

Window
   UISplitViewController

我想推一个新的 UIController 来占用或替换 UISplitViewController

【问题讨论】:

【参考方案1】:

使用presentModalViewController:animated: 从视图控制器显示您的视图控制器,如果您为动画传递 YES,它将默认覆盖整个屏幕并从下到上进行动画处理。

MyModalViewController *mvc = [[MyModalViewController alloc] initWithNibName:nil bundle:nil];
[self presentModalViewController:mvc animated:YES];
[mvc release];

【讨论】:

顺便说一句,要关闭模态vc,您使用dismissModalViewControllerAnimated。您可以从模态 vc 本身调用它,但我更喜欢使用 NSNotification 或委托来通知父 vc 模态已完成并让父调用解除,以便当前/解除匹配并且父 vc 确切知道何时modal 关闭并提供了一种在需要时将数据传回的简单方法。 这里唯一需要注意的是,当以模态方式呈现它时,您不能让背景透明。因此,如果您打算显示进度条或加载条 - 不行。【参考方案2】:

你可以[[UIApplication sharedApplication] getKeyWindow].rootViewController = newViewController;

我实际上不确定 getKeyWindow 是否是确切的方法名称,它可能略有不同。

【讨论】:

但我想确保当用户关闭 newViewController 时原始 UISplitViewCONtroller 仍然存在。 我还想从底部到顶部对其进行动画处理

以上是关于如何将视图控制器推送到 UISplitViewController的主要内容,如果未能解决你的问题,请参考以下文章

如何将新的 viewController 推送到另一个视图控制器中的现有视图中?

如何快速将需求视图控制器推送到导航控制器

如何将其他视图控制器推送到 NavigationController 但保留 TabBar?

如何在将数据推送到导航堆栈之前将数据传递给视图控制器并加载它?

如何将segue从表格视图中的单元格单击推送到另一个视图控制器[重复]

如何将新的视图控制器推送到当时在 tabbarcontroller 中存在的 navigationcontroller?