【Swift】モーダルを下スワイプで閉じられなくなった(iOS15)
どういうことか
例としてWebViewControllerをモーダルで表示している。
――で、こんな感じ。
閉じることができない。もどかしい。
なぜか
iOS15からハーフモーダルがライブラリなしに実装できるようになったためだと思われる。
結論から言うと、閉じるためのハンドル(取っ手)をつける記述を書かないと閉じることができない。
if let sheet = webViewController.sheetPresentationController {
// コレ
sheet.prefersGrabberVisible = true
}
取っ手が出て閉じられるようになった。
iOS15のみの対応であるため、2021年10月現在実際に書かれるコードはこんな感じになるだろう。
if #available(iOS 15.0, *) {
if let sheet = webViewController.sheetPresentationController {
sheet.prefersGrabberVisible = true
}
} else {
// Fallback on earlier versions
}
ちなみに
ハーフモーダルにするのはたったこれだけ。
if #available(iOS 15.0, *) {
if let sheet = webViewController.sheetPresentationController {
sheet.detents = [.medium()]
}
} else {
// Fallback on earlier versions
}
ハーフモーダルにすると枠外タップで閉じることができる。フルモーダルは枠外タップ閉じることができない。
調べてないけど、閉じる(あるいは閉じない)設定もあるかもしれない。
一応公式
おわり(´・ω・`)
Author And Source
この問題について(【Swift】モーダルを下スワイプで閉じられなくなった(iOS15)), 我々は、より多くの情報をここで見つけました https://qiita.com/antk/items/7d618f5a4598e33db3e3著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .