在 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中弹出一样在窗口最顶层?