使用拆分视图时如何关闭“详细信息”视图

问题描述 投票:0回答:1

我想在按下取消按钮时忽略我的DetailViewController的视图。

当我只有两个视图控制器,比如Master和Detail时,我可以忽略详细视图,如下所示:

@IBAction func pressedCancel(_ sender: UIBarButtonItem) {

    // Dismiss the view
    if let owningNavigationController = navigationController {   
        owningNavigationController.popViewController(animated: true)
    }
}

使用在其下具有详细信息和主视图的拆分视图控制器时,这不起作用。例如,当在iPhone上的纵向视图中时,我只是希望在单击取消按钮时关闭详细视图。

我该怎么做呢?

ios swift uinavigationcontroller
1个回答
0
投票

当您在UINavigationController水平尺寸类的上下文中使用UISplitViewControllershowDetailViewController添加到.compact的细节时。它推动了UINavigationController在主人的UINavigationController上,所以当你想要消除细节UINavigationController时,你需要向主人UINavigationController发消息。像下面这样的东西应该工作。

@IBAction func pressedCancel(_ sender: UIBarButtonItem) {
    let navC = navigationController?.navigationController
    navC?.popViewController(animated: true)
}

在这里,我们检查导航控制器是否有导航控制器并要求它弹出其最顶层的视图控制器。

© www.soinside.com 2019 - 2024. All rights reserved.