iOS13からModalで画面遷移をする際にフルスクリーンではなくシート型に変更になりました。この場合、UIとしては格好いい(スワイプで閉じられる)のですが、遷移元の画面更新をviewWillAppearでやっていた場合、iOS13では呼ばれなくなりました。
対応策
遷移先のViewControllerのなかで下記のメソッドを呼んでやる必要があります。iOS12で呼ぶと二重で実行されてしまうので、実行をiOS13以上にしてやる必要があります。
override func viewWillAppear(_ animated: Bool) {
if #available(iOS 13.0, *) {
presentingViewController?.beginAppearanceTransition(false, animated: animated)
}
super.viewWillAppear(animated)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
if #available(iOS 13.0, *) {
presentingViewController?.beginAppearanceTransition(true, animated: animated)
presentingViewController?.endAppearanceTransition()
}
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
if #available(iOS 13.0, *) {
presentingViewController?.endAppearanceTransition()
}
}