80
54

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

iOS 13 以降でモーダルを fullScreen 表示させる3つの方法

Posted at

iOS 13 以降は UIModalPresentationStyle がデフォルトで .automatic になり、大抵の場合はカード型の UI( .pageSheet )で表示されるようになりました(iOS 13 SDK でビルドした時に .automatic になります)。が、今まで通り全画面( = .fullScreen )で表示したいというケースもあるはず。ここでは fullScreen 表示にする3つのパターンについて紹介します。

コード x present

単純に style 指定をするだけで大丈夫です。

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

コード x segue

Show Detail なんかを使っていると Storyboard 上で style 指定ができないと思います。なので prepare あたりで指定してあげると良いのかなと思います。

override func prepare(for segue: UIStoryboardSegue, sender _: Any?) {
    if segue.identifier == "toView2" {
        if let vc = segue.destination as? ViewController2 {
            vc.modalPresentationStyle = .fullScreen
        }
    }
}

Storyboard x segue

Storyboard で Present Modally を使っているなら style 指定ができます。

スクリーンショット 2019-09-17 17.16.31.png
スクリーンショット 2019-09-17 17.16.46.png

80
54
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
80
54

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?