1

タップするとPopoverControllerを表示する4つのUIBarButtonがあります。タップしたボタンに応じて、異なるポップオーバーコンテンツを表示する必要があり、これはPopoverControllerviewDidLoadメソッドで実行する必要があります。

UIBarButtonがタップしたポップオーバーを処理する方法は次のとおりです。in(VC1.m)

[PopoverController presentPopoverFromBarButtonItem:[self.navigationItem.rightBarButtonItems objectAtIndex:[self.navigationItem.rightBarButtonItems count] -1]
                                 permittedArrowDirections:UIPopoverArrowDirectionAny
                                                 animated:YES];

viewDidLoad、(PopoverController.m)に条件を入れたい

- (void)viewDidLoad {
   [super viewDidLoad];
   if ([super.navigationItem.rightBarButtonItems objectAtIndex:[self.navigationItem.rightBarButtonItems count] -1]) {
      // Trigger method# 1
    }
    else {
      // Trigger method# 2
    }
}
4

1 に答える 1

1

使用するタブの初期状態のプロパティを追加することをお勧めします。基本的に:

@property NSInteger tabState;

次に、初期化の直後、またはinit関数でこれを設定できます。

PopoverController上記のコードで、UIPopoverControllerどこかでインスタンス化するサブクラスであると仮定すると、init関数を変更できます(通常は、initの呼び出し中にタブ状態をに渡してから次の– initWithContentViewController:ように渡します。– initWithContentViewController:tabState:

– initWithContentViewController:(UIViewController*)vc tabState:(NSInteger)newTabState
{
     self = [super initWithContentViewController: vc];
     if (self) {
         self.tabState = newTabState;
     }
     return self;
}

次に、あなたの-viewDidLoadメソッドでは、あなたはあなたからトリガーすることができ、あなたself.tabStateは前のビューに緊密にバインドすることなく状態情報を持っています。

于 2013-03-25T19:44:43.657 に答える