【Swiftメモ】ナビゲーション付きのポップアップを実装した時のViewサイズの調整方法について

UIPopoverPresentationControllerを使ってナビゲーション付きのポップアップを作った時に、Viewのサイズ調整のコードが効かず困ったことがあったので、対処方法を備忘録として残しておきます。

困ったこと

以下が、実際に作ったナビゲーション付きポップアップで、表示するページによってViewの高さを変更しています。

ページ1

ページ2

Viewのサイズは、storyboard上でContent Sizeを個々に指定して高さを調整しています。

ページ1からページ2へ移動すると、問題なくページ2の高さでViewが表示されます。

しかし、ページ2からページ1へ戻ると、ページ1の高さには戻らず、ページ2の高さがキープされてしまいます。

対処方法

前のViewへ戻った時にViewのサイズを調整するには、preferredContentSizeを使って再度調整する必要があります。

preferredContentSizeの説明

viewWillAppearの中に以下のコードを記述することで解決できたした。

override func viewWillAppear(_ animated: Bool) {
  super.viewWillAppear(animated)

  // Viewのサイズを調節する      
  self.navigationController?.preferredContentSize = CGSize(width: 300, height: 280)
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA