やはり storyboard は苦手です…。
今回は、Xcode 上で、storyboard と コードを関連付けようとしたときに遭遇したエラーについてです。
よく、storyboard で作成した UIButton を、control キーを押しながらドラッグして、コードと関連付けるという操作を行うと思いますが、その際に
「Could not insert new outlet connection」というエラーが発生して、この操作が失敗するという現象が起こりました。
いつもなら、もう一度やり直すとうまく行くことが多かったのですが、今回は何度やっても同じエラーになり…試しにボタンにつける名前を変えてみたり、TouchUpInside
の Action
を追加するようにしてみたりもしたのですが、それでもダメでした。
色々試しても埒が明かなかったので、「Could not insert new outlet connection」というキーワードで検索した結果、下記の記事にたどり着きました。
[Swift] Could not insert new outlet connection が出た時のよさげな解決策 – Qiita
https://qiita.com/takecian/items/d8db3965152580eafdc7
こちらの記事は本当に役に立ちました…!
参考記事によると、まず手動で接続先の変数(Outlet)を書きます。
サンプルコードは下記の通りです。
@IBOutlet weak var loginButton: UIButton!
上記では、UIButton
としていますが、もちろんラベルなどでもOKです。
storyboard に配置した View に合わせて適宜変更して下さい。
上記を作成したら、コードを書いた行の左端に「丸」が表示されると思います。
未接続なので、枠線だけの丸「○」になっているはずです。
あとはこの丸から、storyboard の接続したい UIButton
などまで矢印を引っ張っていけばOKです。
接続が完了すると、行左の丸記号が「○」から「◉」に変化します。
そのあと、実際にボタンを押した時の処理などを追加し、実機で動作確認してみたところ、意図した通りに関数が実行されました!
何故接続できなかったのかはわからなかったのですが、何にせよ、解決できてよかったです。
以上、Xcode で storyboard 上の要素とコードを接続する際に「Could not insert new outlet connection」エラーが発生する時の対処法でした。
ご参考になれば幸いです。