作業中のアプリでストーリーボードを使用しようとしています。アプリにはリストとユーザーがあり、それぞれに他のコレクションが含まれています(リストのメンバー、ユーザーが所有するリスト)。だから、それに応じてListCell
とUserCell
クラスがあります。目標は、それらをアプリ全体で再利用できるようにすることです(つまり、私の任意のtableviewコントローラーで)。
ここで問題が発生します。
どのストーリーコントローラーでも再利用できるカスタムのテーブルビューセルをストーリーボードに作成するにはどうすればよいですか?
これまでに私が試した具体的なことを次に示します。
コントローラー#1で、プロトタイプセルを追加し、クラスを
UITableViewCell
サブクラスに設定し、再利用IDを設定し、ラベルを追加して、それらをクラスのアウトレットに配線しました。コントローラー#2で、空のプロトタイプセルを追加し、同じクラスに設定して、以前と同じようにIDを再利用します。実行すると、コントローラー#2にセルが表示されるときにラベルが表示されません。コントローラー#1で正常に動作します。各セルタイプを異なるNIBで設計し、適切なセルクラスに配線しました。ストーリーボードで、空のプロトタイプセルを追加し、そのクラスを設定して、自分のセルクラスを参照するためにIDを再利用しました。コントローラの
viewDidLoad
メソッドで、それらのNIBファイルを再利用IDに登録しました。表示すると、両方のコントローラーのセルはプロトタイプのように空でした。両方のコントローラーのプロトタイプを空にしてクラスを設定し、IDを私のセルクラスに再利用します。セルのUIを完全にコードで構築しました。セルはすべてのコントローラーで完全に機能します。
2番目のケースでは、プロトタイプが常にNIBをオーバーライドしていると思います。プロトタイプセルを強制終了した場合、NIBを再利用IDに登録すると機能します。しかし、セルから他のフレームにセグエをセットアップすることはできません。これが、ストーリーボードを使用することの本質です。
結局のところ、ストーリーボードでテーブルビューベースのフローを配線し、コードではなく視覚的にセルレイアウトを定義するという2つのことが必要です。今のところ、両方を取得する方法はわかりません。