1

すべて、現在表示されているView ControllerのIDに基づいてセグエを実行しようとしています。基本的に、VC のストーリーボード ID を指定したので、コードでこれらにアクセスしたいと考えています。したがって、基本的に、既存のView Controllerが最初の場合はfirstSegueを実行し、2番目の場合はsecondSegueを実行するなどのロジックが必要です。また、私の VC はナビゲーション コントローラーの一部であり、ナビゲーション コントローラーには、現在のビュー コントローラーなどを表示できるプロパティがあることを知っています。しかし、それが何であるかはわかりませんでした。誰か助けてくれませんか?繰り返しますが、コードは次のようになると予想しています。

(IBAction)firstButtonPressed:(id)sender
 { if (presentviewcontroller ==a) // If the current view controller Is A
 {
  [self performSegueWithIdentifier:@"segueA" sender:self];}
 if(storyboard.viewcontroller==b)//If the current view controller is B
{
  [self.performSegueWithIdentifier:@"segueB" sender:self];}


  }

誰かがコードを手伝ってくれますか?

4

2 に答える 2

0

Interface Builderでビューごとに異なるタグを設定する場合は、次を使用できます。

if (self.view.tag == 1) {
    NSLog(@"something");
}

私はアプリでこの方法をさまざまなビューにうまく使用しており、うまく機能しています。

于 2013-01-27T21:53:29.197 に答える
0

あなたの設定を理解しているかどうかはわかりませんが、それが私の考えであれば、どのコントローラーからボタンが押されたかを知る必要はありません。2 つのコントローラーは共通の祖先から継承されますが、それらは別個のインスタンスであり、そのインスタンスに接続されているセグエのみが呼び出されます。したがって、各コントローラーは同じ識別子を持つセグエを持つことができます。たとえば、button1Segue とします。次に、AncestorController のコードは次のようになります。

-(IBAction)firstButtonPressed:(UIButton *)sender{
    [self performSegueWithIdentifier:@"button1Segue" sender:self];
}

どちらのインスタンスのボタンが押されても、そのインスタンスのセグエのみが実行されるため、正しいセグエが実行されます。

于 2013-01-27T23:50:18.727 に答える