注:これはシミュレータでのみテストしました。UIBarButtonItemをタップしたときにアクションが呼び出されない
ターゲットアクションをInterface BuilderでIBActionとして接続する代わりに、コードに追加したいとします。
theButton
は、IBで作成された左上のナビゲーションバーにあります。
ステップ:
がIBOutletとして
theButton
宣言および1Bにそれを接続します。追加この
viewDidLoad
で:self.theButton.target = self; self.theButton.action = @selector(theAction);
私はこれで
theAction
をテストしている:私はシミュレータでtheButton
をクリックすると- (void)theAction { NSLog(@"theAction called"); //do some other stuff }
、何も起こりません。私はNSLogステートメントを全く見ません。
私には何が欠けていますか?
これは、self.theButton.target = selfを使ってプログラムで実行されるため、その必要はありません。 self.theButton.action = @セレクタ(theAction); – Russian
プログラムによる使用のために私の答えを編集しました。 – shannoga
* UIBarButtonItem *は* addTarget:action:forControlEvents:*メソッド – EmptyStack