如何在 Xcode 11.1 中创建使视图控制器全屏显示的 Segue

8 xcode segue swift

当我尝试通过故事板创建 segue 时,它​​只会打开新的视图控制器作为弹出而不是全屏。我尝试将某种转场从 ,,Show (eg Push)" 更改为其他人,但后来我得到了 "Thread 1: signal SIGABRT"

小智 14

您需要选择present modallysegue type,然后正下方选择的演讲风格full screen

Xcode 截图


Dav*_*pin 9

你需要做的就是设置目标视图控制器什么是modalPresentationStylefullscreen的方式prepareForSegue:sender:

class FirstViewController: UIViewController {

    ...

    @IBAction func segueButtonPressed(_ sender: Any) {
    }

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

        super.prepare(for: segue, sender: sender)

        if let secondViewController = segue.destination as? SecondViewController {
            secondViewController.modalPresentationStyle = .fullScreen
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

prepareForSegue:sender:在从 a 执行 segue 之前调用UIViewControllermodalPresentationStyleiOS 13+ 中的默认值是.pageSheet,这是覆盖整个屏幕的演示文稿(尽管它允许通过向下滑动视图控制器并将其从屏幕上移开来实现更自然的导航/关闭)。我们需要在执行modalPresentationStyle转场.fullScreen之前将其更改为。