LoginSignup
5

More than 5 years have passed since last update.

Xcode8でStoryboardからActionを紐付けられない場合の対処方法

Posted at

Xcode8で、これまでやっていたようにcontrolキーを押しながらUIButtonなどにActionを紐付けると、勝手にxxxWithSenderのような名称と紐付けが行われる上に実際実行してみるとunrecognized selectorを発生させる現象に悩まされました。

なお、onClickWithSenderというメソッドを書いて紐付けると、WithSenderWithSenderとか作られます。

原因

Xcode8で、Use Legacy Swift Language VersionYESになっている場合に起こる不具合のようです。
SWIFT_VERSION = 2.3が指定されているときに発生を確認しています。
詳細な解説については、以下で回答している方がいますのでそちらを参照。

Xcode 8 drag and connect @IBAction incorrectly adds “WithSender” on connection inspector IB

解決策

Swift3.0で実装する…のが一番正しいですが、ライブラリの関係などで行えないことも多いと思います。
上記内で書かれているように、右クリック(副ボタンのクリック)からイベントを選択して紐付けを行うと正常に紐付けすることができます。
(見た目上は変わらないんですが。。。)

この場合はボタンなので、Touch Up Insideを選択
スクリーンショット 2016-10-11 12.13.23.png

スクリーンショット 2016-10-11 12.13.43.png

蛇足

不安だったら、もうコードで.addTargetしちゃうのがいいと思います。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5