0

ボタンが押されたときにボタンのコードを実行する方法を知っている唯一の方法は、xCodeを使用して実際にボタンのメソッドを作成することです。代わりに押されたかどうかを尋ねる if ステートメントを作成することは可能ですか? 何かのようなもの

if(button.ispressed)
{
 //code here
}

編集: if ステートメントはスケジュールされたタイマーに含まれるため、常にチェックされます。

4

3 に答える 3

1

いいえ、それはイベント ドリブン パラダイムに反するためです(「ボタンを押すとアクションが発生する」という空想的な話です)。求められたことを実行するには、画面上のボタンのいずれかが取得されたかどうかを常に確認する必要があります。押した。

あなたが達成できる最も近いことは、すべてのボタンを同じメソッドに向けてから、呼び出し元をチェックするようなものです。

たとえば、この 3 つのボタンをリンクしてみましょう (これらは@propertyそれらに接続されています) 。

[self.button1 addTarget:self action:@selector(weAllGotPressed:) forControlEvents:UIControlEventTouchUpInside];
[self.button2 addTarget:self action:@selector(weAllGotPressed:) forControlEvents:UIControlEventTouchUpInside];
[self.button3 addTarget:self action:@selector(weAllGotPressed:) forControlEvents:UIControlEventTouchUpInside];

そして、コールバック メソッドで次のようにします。

- (void)weAllGotPressed:(UIButton*)button
{
    if (button == self.button1)
    {
        // Do something
    }
    else if (button == self.button2)
    {
        // Do something else
    }
    else if (button == self.button3)
    {
        // Do another thing
    }
}

@property を使用してUIButtonアドレスを確認したくない場合は、ビュー タグを使用してそれらを識別することもできます。

于 2013-07-15T04:32:35.737 に答える
1

を使用してこれを行うことができます:(id)sender

-(IBAction)someAction:(id)sender
{
     if(sender == yourButtonInstance)
     {
        //yourButtonInstance is Pressed.
     }
}
于 2013-07-15T04:19:48.103 に答える
0

はい。ただし、これは、即時アクションをトリガーすることを意図していないコントロールに対してのみ実行する必要があります。たとえば、ハンドラーのない多数のチェックボックスと、ハンドラーのあるアクション ボタンがあります。

状態を維持するコントロールの状態を決定する。チェックボックスやラジオボタンなど。またはの方法stateを使用します。UIControlNSControl

ほとんどのプッシュ ボタン (プッシュ オン/プッシュ オフ スイッチとして構成できるため、状態を維持することができます) のように、ボタンが状態を記憶していない場合、事実を記録するハンドラーなしでボタンが押されたかどうかを判断する方法はありません。

HTH

于 2013-07-15T04:29:09.550 に答える