【问题标题】:Popping a ViewController inside SplitViewController在 SplitViewController 中弹出一个 ViewController
【发布时间】: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 的右侧实际上并没有改变。

好像某处没有连接。

【问题讨论】:

    标签: objective-c ios uinavigationcontroller uisplitviewcontroller


    【解决方案1】:

    最终改用popToRootViewControllerAnimated解决了。

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

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

    【讨论】:

    • 感谢分享。最有帮助。 +1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-13
    相关资源
    最近更新 更多