-3

4つのUIImageViewと4つのUIButtonを使用してアプリを作成しています。各ボタンは、UIImageViewを変更できるようにフォトライブラリを開くオプションがあるUIAlerViewに接続されています。私の問題は、どのUIButtonが押されたかをUIAlertViewに伝える方法がわからないことです。

どのボタンが押されたかをどのように書くことができますか?

4

3 に答える 3

1

やる方法はたくさんあります。

アクションでは、送信者をログに記録すると、どのボタンが押されたかが表示されます。

-(IBAction) myFirstButton: (id) sender {
  NSLog(@"User clicked %@", sender);
  // Do something here with the variable 'sender'
  /*if ( [[sender title] isEqualToString:@"Button 1"] ) { 
        //do whatever you want
  */
}

2番目の方法は、通知を投稿して監視することです。

于 2012-11-29T15:09:31.010 に答える
1

ボタンにタグを追加できます。

于 2012-11-29T15:09:42.623 に答える
1
  1. Interface Builderを使用している場合は、すべてのボタンを別のメソッドに接続するか、別のターゲットを追加できます。簡単ですが、あまりスケーラブルではないか、動的な数のボタンと互換性がありません。

  2. 以下を使用して、すべてのボタンに同じターゲットとセレクターを追加します。

    [_yourButton1 addTarget:self
               action:@selector(aButtonTapped:)
     forControlEvents:UIControlEventTouchDown];
    

    そして、aButtonタップメソッド内で、どのボタンがタップされているかを確認し、それに応じて動作します。

    - (void) aButtonTapped:(id) sender{
    
         if ( sender == _yourButton2) //Do sth
    }
    

どちらの場合も、InterfaceBuilderの使用は簡単になります。

于 2012-11-29T15:20:06.960 に答える