2017-10-26 15 views
1

ボタンにプログラムでIBActionを追加するにはどうすればよいですか?エラー:私は "信号SIGABRTスレッド1" を与えるSwift 4のプログラムでIBActionをボタンに追加するにはどうすればよいですか?

button.addTarget(self, action: Selector(("buttonAction:")), for: 
.touchUpInside) 

func buttonAction(sender: Any) { 
    print("test") 
} 

+0

"あなたは、コード内でアウトレット/アクションの接続を削除したり(?スペルの間違いを)と改名" '): – Mofawaw

+0

btn.addTarget(自己、アクション:#セレクタ(testFunction(_ :)):.touchDown)swift 3.2 –

+0

技術的には、 IBAction'はプログラム的に - "IB"は "Interface Builder"の略です。あなたが尋ねることは、 'addTarget(action:)'呼び出しで 'sender'をどう使うかということです。 – dfd

答えて

2

スウィフト4バージョン:

button.addTarget(self, action: #selector(action(sender:)), for: .touchUpInside) 

@objc fileprivate func action(sender: Button) { 
    print("test") 
} 
+0

あなたの返事をありがとう、確かに私はこのコードを見たことがあります。 "#selector"の引数は、Objective-Cに公開されていないインスタンスメソッド 'buttonAction(sender :)'を参照しています。このインスタンスメソッドをObjective-Cに公開するために '@objc'を追加してください。 "_ _ – Mofawaw

+0

そのため、@ objcアノテーションがあります。 –

+0

@Mofawaw、 "@objc func buttonAction()"のようになります。 –

関連する問題