UIPopoverPresentationControllerを使ってナビゲーション付きのポップアップを作った時に、Viewのサイズ調整のコードが効かず困ったことがあったので、対処方法を備忘録として残しておきます。
困ったこと
以下が、実際に作ったナビゲーション付きポップアップで、表示するページによってViewの高さを変更しています。
ページ1
ページ2
Viewのサイズは、storyboard上でContent Sizeを個々に指定して高さを調整しています。
ページ1からページ2へ移動すると、問題なくページ2の高さでViewが表示されます。
しかし、ページ2からページ1へ戻ると、ページ1の高さには戻らず、ページ2の高さがキープされてしまいます。
対処方法
前のViewへ戻った時にViewのサイズを調整するには、preferredContentSizeを使って再度調整する必要があります。
viewWillAppearの中に以下のコードを記述することで解決できたした。
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// Viewのサイズを調節する
self.navigationController?.preferredContentSize = CGSize(width: 300, height: 280)
}
created by Rinker
¥3,536
(2024/11/23 14:06:16時点 Amazon調べ-詳細)
(2024/11/23 14:06:16時点 Amazon調べ-詳細)