1

ストーリーボード付きのマスター/ディテール テンプレートを使用して新しいアプリケーションを作成しました。ランドスケープ モードでマスター ビュー コントローラーを非表示/表示できるユーザー機能を提供したいと考えています。ネット上でいくつかの例を見つけましたが、ストーリー ボードとナビゲーション コントローラーを使用したマスター/ディテール テンプレートを使用しているものはありません。

ポートレートモードでマスタービューコントローラーを非表示にするのに役立つ splitviewcontroller willHideViewController と willShowViewController を既に実装しています。App Delegate の didFinishLaunchingWithOptions メソッドで以下のコードを使用して、最初にビューをロードしています。

UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
splitViewController.delegate = (id)navigationController.topViewController;

あなたが私に正しい方向を向けることができれば、私は感謝します。

ありがとう、タパン・デサイ

4

1 に答える 1

0

マスター ビューはポップオーバーで表示され、ポップオーバーを使用してマスターの表示を制御できます。

だから...次の手順に従ってください:

1) popoverController を保持するプロパティを作成する

@property (nonatomic, strong) UIPopoverController *pc;

2) SplitViewController willHide デリゲート呼び出しで popoverController をキャプチャします。

-(void) splitViewController:(UISplitViewController *)svc
     willHideViewController:(UIViewController *)aViewController
          withBarButtonItem:(UIBarButtonItem *)barButtonItem
       forPopoverController:(UIPopoverController *)pc
{
    barButtonItem.title = @"Menu"; 
    id detailViewController = [self.splitViewController.viewControllers lastObject];
    [detailViewController setSplitViewBarButtonItem:barButtonItem];
    self.pc = pc;  //poppver controller
}

3) 最後に、pc var を使用してポップオーバーを閉じます。

 if (self.pc) {
        [self.pc dismissPopoverAnimated:YES];
    }
于 2013-03-14T19:44:46.643 に答える