いくつかの機能を備えたボタンを作成した小さなiPhoneアプリがあります。私の質問は、実際に押さずにこのボタンを呼び出すにはどうすればよいですか?
どんな助けでも大歓迎です!
ありがとう
いくつかの機能を備えたボタンを作成した小さなiPhoneアプリがあります。私の質問は、実際に押さずにこのボタンを呼び出すにはどうすればよいですか?
どんな助けでも大歓迎です!
ありがとう
ボタンが接続されているターゲットをアクティブにしたい場合は、次のコマンドを呼び出すことができます。
[button sendActionsForControlEvents:UIControlEventTouchUpInside];
(TouchUpInsideは、通常はボタンアクションをワイヤリングするイベントです)。このように、他のターゲットがいずれかのボタン(たとえばデバッグ用)に追加または変更された場合、コードを変更する必要はありません。
このメソッドは、UIButtonが継承するUIControlにあります。そのため、一見見落としているかもしれません...
ボタンイベントで関数を呼び出します。関数を自分で手動で呼び出すこともできます。
例:
- (void) btnFunction {
NSLog (@"test");
}
...
UIButton *btn1 = [UIButton buttonWithType:UIButtonRoundedRect];
// other code to set up button goes here
[btn1 addTarget:self action:@selector(btnFunction) forControlEvents:UIControlEventTouchUpInside];
関数を自分で呼び出すこともできます。
[self btnFunction];
ボタンに機能を持たせる必要はありません。ターゲットにメッセージを送信するだけです (またはメソッドを呼び出すか、関数を呼び出します...)。
そのメッセージをそのターゲットに自分で自由に送信できます。
例: ボタンのターゲット アウトレットは、コントローラーの IBAction に接続されます。その IBAction は、次の形式のメソッドにすぎません。
- (void) doSomething:(id)sender
独自のコードで次のようにします。
[controller doSomething:self];
ボタンにそれをさせるのとまったく同じです。