3

iPad アプリで UISplitViewController を使用していますが、ポートレート モードのときにポップオーバー ビューがスライドして画面の 3 分の 1 を覆い、そこにとどまる方法があまり好きではありません。

ポップオーバーがスライドしてビューに表示されたときに詳細ビューのサイズを変更していますが、上部のナビゲーション バーが全幅のままであることを除いて (ポップオーバーの下に移動します)、これは正常に機能します。私は基本的に、横向きモードのときと同じように見せたいと思っています。

これは、ビューのサイズを変更するために使用するコードです。

UIViewController *masterView = [svc.viewControllers objectAtIndex:0];
UINavigationController *detailNavView = [svc.viewControllers objectAtIndex:1];
UIViewController *detailView = [detailNavView.viewControllers objectAtIndex:0];

detailView.view.frame = CGRectMake(masterView.view.frame.size.width, 0, detailView.view.frame.size.width - masterView.view.frame.size.width, detailView.view.frame.size.height);

設定してみdetailNavView.view.frameましたが何も起こりません。

ナビゲーション バーを含む詳細ビュー全体のサイズを変更するにはどうすればよいですか?

4

2 に答える 2

4

UISplitViewControllerうーん、あまり柔軟ではないと思います。これは Apple が決定したものにすぎません。詳細ビューは、このコントローラーのビュー全体 (つまり、メイン ビュー) を占めているため、このようにナビゲーション バーを操作するには、別の種類のコントローラーのメイン ビューのサブビューとして定義する必要があります。

縦向きビューをカスタマイズする唯一の解決策は、Apple のバージョンの Split View Controller を実際に廃止し、独自のものを作成することです。

おそらく最も現実的な解決策は、アイテムが選択されて詳細ビューに表示された後にポップオーバーを閉じることです。

于 2013-03-08T13:52:52.890 に答える