Slide 1

Slide 1 text

iOS13のモーダル表示 株式会社ビデオマーケット 青沼 和裕

Slide 2

Slide 2 text

自己紹介 青沼 和裕 - 株式会社ビデオマーケット - iOS 開発歴 4 年 - 現在は Flutter で開発中 - 個人開発やってます - 「今日は何の日」、「恵方巻きコンパス」 etc

Slide 3

Slide 3 text

WWDC初参加

Slide 4

Slide 4 text

WWDC良かったこと - 会場の雰囲気が良い - ラボで色々聞けた - 意識が高まる

Slide 5

Slide 5 text

WWDC良くなかったこと - ランチが予想以上にまずかった - スーツケース持って入れなかった

Slide 6

Slide 6 text

iOS13のモーダル表示

Slide 7

Slide 7 text

スワイプして閉じれるようになった - 画面を下にスワイプして閉じれる - 特別な実装はなし

Slide 8

Slide 8 text

スワイプして閉じさせたくない時 - フルスクリーンで表示する ○ modalPresentationStyle に fullScreen を設定 ○ iOS12 と同じ表示になる

Slide 9

Slide 9 text

isModalInPresentation - UIViewController に iOS13 から追加されたプロパティ - true にすることで、スワイプして閉じれなく出来る - デフォルト値は false - 編集出来る画面等で、 ○ 編集中に isModalInPresentation に true を設定することで、編集中に スワイプして閉じられるのを防ぐことが出来る

Slide 10

Slide 10 text

presentationControllerShouldDismiss - UIPresentationController に iOS13 から追加された delegate メソッド - false を返すことで、スワイプして閉じれなく出来る - presentationControllerWillDissmiss - presentationControllerDidDissmiss

Slide 11

Slide 11 text

presentationControllerDidAttemptToDismiss - UIPresentationController に iOS13 から追加された delegate メソッド - スワイプして閉じようとした時に呼ばれる - 閉じる時の確認などが出来る - isModalInPresentation が true の時または、 presentationControllerhouldDissmiss が false を返す時のみ呼ばれる

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

まとめ

Slide 14

Slide 14 text

- デフォルトでスワイプして閉じるが出来て良い - 既存のアプリを iOS13 に対応する際に、スワイプして閉じさせたくない画面は実装が 必要になる - スワイプして閉じさせたくない画面については、フルスクリーンでの対応が一番簡単 そう

Slide 15

Slide 15 text

ご静聴ありがとうございました

Slide 16

Slide 16 text

- WWDC セッション Modernizing Your UI for iOS 13 ○ https://developer.apple.com/videos/play/wwdc2019/224/ - isModalInPresentation ○ https://developer.apple.com/documentation/uikit/uiviewcontroller/3229894-ismodalinpresentation - presentationControllerDidAttemptToDismiss ○ https://developer.apple.com/documentation/uikit/uiadaptivepresentationcontrollerdelegate/322 9888-presentationcontrollerdidattempt?language=objc - Human Interface Guidelines ○ https://developer.apple.com/design/human-interface-guidelines/ios/app-architecture/modality/