如何使用导航控制器 iOS 13 从模态呈现的 ViewController 将 ViewController 推送到全屏?

gol*_*mar 4 ios uimodalpresentationstyle swift ios13

我有一种情况,我有三个视图控制器,假设 VC1、VC2 和 VC3,我在 VC1 上以模态方式呈现 VC2,并使用导航控制器,如

   let nav = UINavigationController(rootViewController: VC2)
   self.present(nav, animation:true)
Run Code Online (Sandbox Code Playgroud)

我想要将 VC3 从 VC2 推送到全屏,而不改变 iOS 13+ 中 VC2 的演示风格。目前是 overCurrentContext。

小智 5

如果要将视图控制器 VC3 添加为导航控制器的根视图控制器,则需要将 modalPresentationStyle 作为 overFullScreen 添加到导航控制器。

let nav = UINavigationController(rootViewController: VC3)
nav.modalPresentationStyle = .overFullScreen
self.present(nav, animation: true)
Run Code Online (Sandbox Code Playgroud)

如果你直接呈现VC3,那么就这样做。

VC3.modalPresentationStyle = .overFullScreen
self.present(VC3, animation: true)
Run Code Online (Sandbox Code Playgroud)