5
7

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.

iOS13でのモーダル表示

Posted at

iOS13にすると、iOS12までの全画面モーダル表示ではなく元の画面の上に重なるようなUIに変更されました😙
Modal0.gif

アプリ開発をしてこのモーダル表示をどうにか出来ないかと思い自分の備忘録も兼ねて投稿😎

方法

viewという変数にはモーダルで表示したいViewが入っているものとします。
今回3パターン(実質2パターン)用意してみました!

(1)これまでのモーダル表示にする(フル画面)

画面を表示させる前(present)にこのコードを書けばこれまでのモーダル表示になります🥳

modal1.swift
 view.modalPresentationStyle = .fullScreen

Modal1.gif

(2)iOS13からのモーダル表示かつ上から引っ張っても元の画面に戻らないようにする

(1)同様に画面を表示させる前にこのコードを書けば幸せになります🥰

開発しているアプリがiOS13以上ならこの方法もありだと思います😉

modal2.swift
view.isModalInPresentation = true

Modal2.gif

(3)1と2を組み合わせた方法

例えば開発しているアプリがiOS12からだけど、ユーザーがiOS13にした時には(2)の機能を使いたい!って時にオススメです🤩

if文の #available()って何!?って思った方はこちらの記事が良く分かると思います!
iOSのバージョン判定をする方法

modal3.swift

if #available(iOS 13.0, *) {
    // iOS13以上の場合
    view.isModalInPresentation = true
} else {
    // iOS12以前の場合
    view.modalPresentationStyle = .fullScreen
}

最後に

初めてQiitaに投稿してみました!
自分自身Qiitaの多くの記事に助けられながらアプリ開発を行っています。そんなQiitaに自分も記事を投稿して少しでも誰かの悩みの種を無くしていければな!と思っています。未熟者ですがよろしくお願いします。

今回の記事の内容で違っていたりこう治した方が良いなどコメントで下さい!

5
7
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
5
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?