如何在 Xcode iOS Swift 应用程序上隐藏显示上一个 ViewController 层次结构的顶部 space?

How to hide top space showing previous ViewController hierarchy on Xcode iOS Swift app?

这种情况不会发生在 iPhone 6 上,而是发生在 iPhone 8 或更高版本上。使用类型 Show Detail 从 ViewController1 导航到 ViewController2 有一个 space 在顶部屏幕上显示前一个 ViewController1 如下图所示:

如何隐藏这个 space?

我试过了:

  1. 在 ViewController2 上使用所有显示类型(自动、全屏...)
  2. 尺寸大师

将您正在展示的 UIViewControllermodalPresentationStyle 设置为 fullScreen

class PresentingViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        modalPresentationStyle = .fullScreen
    }
}

这是在情节提要中的操作方法...首先点击 segue...首先将类型更改为模态...然后将演示文稿切换为全屏...

你可以试试:

let nav = UINavigationController()
let ctrl = ViewController1()

nav.pushViewController(ctrl, animated: true)
nav.modalPresentationStyle = .overCurrentContext
self.showDetailViewController(nav, sender: self)
nav.popoverPresentationController?.sourceView = self.view

显示您的控制器时,这会覆盖整个屏幕。

nav.popoverPresentationController?.sourceView = self.view

popover 的源视图设置为视图的大小。

您应该尝试以编程方式呈现它(在以前的视图控制器中设置它):

let navVC = UINavigationController.init(rootViewController: vc)
navVC.modalPresentationStyle = .fullScreen
present(navVC, animated: true, completion: nil)

如果您不想使用导航控制器,请跳过第一步。