2

iPadが縦向きの場合にのみセルが選択されているときにマスタービューコントローラーを非表示にしたい。したがって、ユーザーがセルをクリックすると、マスタービューコントローラーが消えます(メールの場合のように)。どこでどのようにこれを行うのですか?

ここに画像の説明を入力してください

このプロジェクトはオープンソースです:https ://github.com/kirkouimet/enzyme

4

3 に答える 3

8

詳細ビューコントローラを設定したら、ポップオーバーコントローラを閉じる必要があります。

if (self.popoverController) {
    [self.popoverController dismissPopoverAnimated:YES];
}

詳細ビューコントローラにを保持するプロパティがまだない場合はUIPopoverController、次のデリゲートメソッドを実装することでキャプチャできます。UISplitViewControllerDelegate

- (void)splitViewController:(UISplitViewController *)iSplitViewController
     willHideViewController:(UIViewController *)iViewController
          withBarButtonItem:(UIBarButtonItem *)iBarButtonItem
       forPopoverController:(UIPopoverController *)iPopoverController {

    self.popoverController = iPopoverController;
}


- (void)splitViewController:(UISplitViewController *)iSplitViewController
     willShowViewController:(UIViewController *)iViewController
  invalidatingBarButtonItem:(UIBarButtonItem *)iBarButtonItem {

    self.popoverController = nil;
}
于 2012-05-18T15:37:23.260 に答える
0

詳細ビューで通知を受け取るために登録を取得します。

1)詳細ビューで通知用の登録を取得します。

- (void) viewDidLoad

 {

        //for showing loginview
        [[NSNotificationCenter defaultCenter] addObserver:self  
        selector:@selector(dismissPop) name:@"MASTERROWSELECTED" object:nil];

  } 

2)didSelectRowAtIndexPathのマスタービューでこれを行います。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

         //do normal things you usually do

        //post notification that row is selected and you need to dismiss popover.

        [[NSNotificationCenter defaultCenter] postNotificationName:@"MASTERROWSELECTED" 
         object:nil];

  }

3)このメソッドを詳細ビューに記述します。

- (void)dismissPop
{

      if(self.interfaceOrientation == UIInterfaceOrientationPortrait)
      {

             //self.popover is your reference to master view pop 
             if([self.popover isPopoverVisible])
             {
                 [self.popover dismissPopoverAnimated:YES];
             }
      }

}
于 2012-08-07T14:55:10.060 に答える
-1

これは、MattGemmellのMGSplitViewControllerなどのカスタムSplitViewControllerを使用して実現できます。特に、この実装では、toggleMasterView:から呼び出すことができるメソッドをコントローラーに追加しますdidSelectRowAtIndexPath:

于 2012-04-28T17:54:56.673 に答える