Outlet cannot be connected to repeating content – Xcodeエラー

スポンサーリンク

Xcode の Storyboard で以下のような UI オブジェクトの階層で、Table View Cell 内の Label から、View Controller(ViewController.swift)に Outlet を作成しようとしたところ…

“Outlet cannot be connected to repeating content” というエラーが出てしまいました。

UITableViewCell のような繰り返し出力されるオブジェクトから、直接に親の UIViewController に Outlet を作成することはできないらしい。

— 環境 —
Xcode 6.3.2
Swift 1.2

【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました
スポンサーリンク

解決策としては、UITableViewCell のサブクラスのファイルを作成して、そっちに Outlet を作成します。そして、View Controller の tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) メソッドから、UITableViewCell に作成した Outlet の変数を操作する。

UITableViewCell のサブクラスとなるファイルを作成

まず UITableViewCell のサブクラスとなるファイル(TableViewCell.swift)を作成します。そして Storyboard の Table View Cell 内の Label から、TableViewCell.swift に Outlet を作成する。TableViewCell.swift は以下の内容となります。

TableViewCell.swift

その後 TableViewCell クラスを、Xcode Storyboard 上で Table View Cell オブジェクトの Identity Inspector の Class に対応させる。Attribute inspector の Identifier にも TableViewCell と入力しておきます。

View Controller の cellForRowAtIndexPath 内で UITableViewCell の Outlet を操作

次に、View Controller の tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) メソッド内で、TableViewCell.swift に作成した Outlet の変数を操作します。以下のように TableViewCell の titleLabel に “title” を設定しました。

ViewController.swift

以上のやり方で、UITableViewCell 内の Label に対して Outlet を正しく作成できて、上手く動作させることができました。

スポンサーリンク
 
スポンサーリンク

Leave Your Message!