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
(2025/10/31 21:40:19時点 Amazon調べ-詳細)
(2025/10/31 21:40:19時点 Amazon調べ-詳細)



