在 SplitViewController 中弹出一个 ViewController

Posted

技术标签:

【中文标题】在 SplitViewController 中弹出一个 ViewController【英文标题】:Popping a ViewController inside SplitViewController 【发布时间】:2012-02-25 16:39:33 【问题描述】:

我有一个 UISplitViewController,左边有一个 UINavigationController,右边有另一个自定义 VC。左边就像一个过滤系统,所以视图将被推送/弹出到它上面。右侧显示实际详细信息。

我已经继承了 UISplitViewController 和 UINavigationController。

我在 IB 中设置了这些,第三个 VC 作为导航控制器的 rootViewController(包含菜单选项列表)。在我的子类 UISplitViewController 的 viewDidLoad 中,我这样做了

    splitNavVc = [self.viewControllers objectAtIndex:0]; // get reference to nav controller for navigation
    [self.splitNavVc pushViewController:recipeTable animated:true]; // push the first level view on by default. As though the user had selected an item from the menu controller at the nav controller's root.

这很好用,但是当我弹出顶部 VC 以再次在根目录显示菜单时:

[self.splitNavVc popViewControllerAnimated:true];

过渡不是仅在左侧窗格中的左->右,而是整个 splitViewController 的顶部->底部过渡。奇怪的是,虽然全屏转换,但我的 splitViewController 的右侧实际上并没有改变。

好像某处没有连接。

【问题讨论】:

【参考方案1】:

最终改用popToRootViewControllerAnimated解决了。

我将导航控制器连接到它的根控制器,然后在我的故事板中为两个“向下钻取”视图创建了 Segue。我使用performSegueWithIdentifier 推送 ViewController 并再次弹出它我使用了

[self.menuVc.navigationController popToRootViewControllerAnimated:true]; // menuVc is the rootViewController in this case

【讨论】:

感谢分享。最有帮助。 +1

以上是关于在 SplitViewController 中弹出一个 ViewController的主要内容,如果未能解决你的问题,请参考以下文章

在 AFNetworking 故障块中弹出 UINavigationController

Jquery EasyUI的Dialog 怎么在iframe中弹出和不在iframe中弹出一样在窗口最顶层?

防止 Java 图标在 Dock 中弹出

如何在颤动中弹出到特定屏幕

在 UISplitViewController 中弹出 UINavigationController 会导致奇怪的过渡

如何在 shiro 中弹出一个屏幕来警告会话超时?