UINavigationController を含むポップオーバーがあります。ポップオーバーを正常に表示でき、navController も正常に含まれています。navController には tableView が含まれており、項目を選択すると新しい詳細ビューが作成されます。
DeviceDetailViewController *detailViewController =
[[[DeviceDetailViewController alloc] initWithNibName:@"DeviceDetailViewController" bundle:nil] autorelease];
次に、新しいビュー コントローラーをプッシュします。
[self.navigationController pushViewController:detailViewController animated:YES];
ここで問題が発生します。新しいビューをプッシュした 後、ポップオーバーのサイズが iPad で利用可能な最大の高さに変更されます。
xib のすべてのビューの高さを柔軟ではなく固定の高さに設定しようとしました。ポップオーバーの高さを明示的に設定しようとしました。また、子ビューとして別のビュー コントローラーを使用してみました。問題は残ります: 新しいビューがナビゲーション コントローラーにプッシュされるたびに、ポップオーバーはそれ自体を最大の高さに自動的にサイズ変更したいと考えています。
これは、新しいビューをプッシュするときにポップオーバーのサイズを意図的に制御しようとすることについて議論する質問です:
これは、サイズを制御するための強引な方法かもしれないと思いました。奇妙なことに、実際には、(ビューが新たにアニメーション化されているかのように) いくつかの素早いグラフィックスの異常が発生し、その後、上記のようにサイズ変更が続けられます。
つまり、何かが文字通りポップオーバーを最大の高さに強制しており、すべてのデリゲート メソッドが呼び出された後に発生しているように見えます。
ナビコントローラーですか?誰もこのようなものを見たことがありますか?