2015-01-08 7 views
6

私はUINavigationControllerにUINavigationControllerを埋め込み、UINavigationItemボタンを使用してマスタービューの表示を縦向きに切り替えることができます。ビューを最初に縦向きに読み込むと、詳細ビ​​ューの上にマスタービューが表示されます。UISplitViewControllerポートレート方向のディテールの上にマスタービューを表示

私が見つけた同様の例では、画面を縦向きに分割したマスタービューと詳細ビューが表示されますが、UISplitViewControllerが最初に読み込まれたときに詳細ビューを表示するマスタービューで、マスタービューが左からスワイプされた場合)。誰もそれを行う方法を知っていますか?

答えて

10

:重複していません。コメントで発見された回答。解決策は、UISplitViewControllerでpreferredDisplayModeを使用し、それをUISplitViewControllerDisplayModePrimaryOverlayに設定することです。

コメントと文脈に文脈の元の答えを残しました。これは、この重複して


オリジナル回答:UISplitViewController in portrait on iPhone shows detail VC instead of master参考

、その場合の解決策は、UISplitViewControllerDelegate次のコードを使用して実装するビューコントローラを持っていることであった。

- (BOOL)splitViewController:(UISplitViewController *)splitViewController 
collapseSecondaryViewController:(UIViewController *)secondaryViewController 
    ontoPrimaryViewController:(UIViewController *)primaryViewController { 

    if ([secondaryViewController isKindOfClass:[UINavigationController class]] 
     && [[(UINavigationController *)secondaryViewController topViewController] isKindOfClass:[DetailViewController class]] 
     && ([(DetailViewController *)[(UINavigationController *)secondaryViewController topViewController] detailItem] == nil)) { 

     // Return YES to indicate that we have handled the collapse by doing nothing; the secondary controller will be discarded. 
     return YES; 

    } else { 

     return NO; 

    } 
} 
+0

重複していない解決策は、マスタービューまたは詳細ビューの表示用です。マスタービューとディテールビューの両方を同時に表示する答えを探しています。マスタービューはディテールビューの一部をカバーしています。あなたは別の答えに向かって私を指摘したり、新しい解決策を投稿できますか? –

+0

Ah。私は誤解しました。 UISplitViewControllerには 'preferredDisplayMode'プロパティがあります。それは動作しますか?私の頭の上には何がないのかわからない。 – lewiguez

+0

それは動作しません。ちょうど画面を分割します。 :( – lewiguez

1

- (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController: (UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation { 

    // Force master view to show in portrait and landscape 

    return NO; 
} 
関連する問題