今回の記事は、TableviewやCollectionViewを表示させる際に使用する、TableViewCellやCollectionViewCellを別ファイルに紐付ける際にAssistant作成したcocoa class ファイルが出てこない問題を解決する記事です。
Tableviewなどを配置したStoryboardでは、Assistantをクリックすることで紐付いているViewcontrollerを横画面やした画面に表示してくれる機能があります。
しかし、Tableview,CollectionViewではその各view上にTableviewCell、CollectionViewCellなどを配置して何かを表示させるというのが主流です。
単純な操作のみの場合は、viewControllerからのコードでなんとかなるのですが、labelなどを配置させてoutlet接続を行いたくてもViewControllerに〜Cellをoutlet接続することはできません。そのため、カスタムクラスを用意して(要は別ファイルを用意してそちらに紐付けて処理コードを記載する)処理します。
その際に、ネットなどに参考記事はあるのですがcocoa クラスで別ファイルを作成するところまではいけるのですが、そこからAssistantで別ファイルを表示して「control」+「ドラッグ」を行おうと思っても、ViewControllerしか表示されず、カスタムクラス用のファイルにoutletせつぞくができない状態でした。
そんな問題に直面している方は多い(かも?)しれないので私の備忘録としても一応まとめておきます。
「〜Cell」をカスタムクラスと紐付ける際の設定方法
まずは、CollectionViewにて紐付けを行っていきますので、StoryboardにCollectionViewを配置して、デフォルトのCellを使用していきます。
まずは適当な名前でCocoa touch classを設定してファイルを作成してください。
私はカスタウクラスを作成する場合はCustamを頭につけているのみのファイルです。
subclassはcollectionviewCellで洗濯して作成を押します。
作成ディレクトリはViewcontrollerと同じ階層内。
配置が終われば下記の様になっているはずです。

ここでCellを一度クリックするとこの様な表示が出てきますので左バーのマークしている欄のクラスをCustamCollectionViewに変更してください。

CustamClassのところが作成したファイルになっているのが分かります。
次にAutomaticと書いているところに注目します。
こちらをクリックするとAssistantで表示できるswiftファイルを変更できるのですが、初期状態では、viewcontrollerに設定されているので、変更する必要が有ります。
ちなみにAssistantを表示させる際は、Cellを再度クリックしてこの様な選択された状態にしてからクリックをおこないます。

ちなみにこちらの再度クリックして青色の表示になってからもクラスを指定できるのですがこちらは特に設定せずとも問題内容です。(理由は謎?)
で設置が終われば下記の様にAutomaticをクリック


こちらが二つ出ている方はおそらくこの様な表示になていると思われるので作成したファイルの方をクリックすることで終了です。
ただ、私は何故かこちらが表示されず初期状態のままこの様な表示になっていました。

こちらを解決する策としては一度作成したファイルをプロジェクトの外というかフォルダをbつのところに移します。


でもう一度ViewControllerと同じ階層に戻します。

すると先ほどまで表示できていなかったAutomaticが2つ表示されています。

何故これで解決できるのかは謎です。
おそらくAppleのXcode側の問題な気もするのですがこれで紐づけができるので参考にしてください。
コメント