私はかなり大きなプロジェクトを持っています(20シーンまで)。その1つは、カスタムUITableViewControllerクラスを持つTableViewControllerです。セルに再利用識別子を指定し、それにラベルを追加しました。 Ctrlキーを押しながらUITableViewControllerヘッダーファイルにラベルをドラッグしてアウトレットを作成しようとすると、次のエラーが表示されます。
エラー:無効な構成:接続 "tableInfoView"には、宛先としてプロトタイプオブジェクトを含めることはできません。
これは何ですか?明らかな何かを見落としていますか?または、カスタムセルクラスを作成し、そこにアウトレットをドラッグする必要がありますか?もしそうなら、UITableViewControllerから各セルに一意に表示されるデータをどのように指定しますか?
実際、UITableView
デリゲートビューコントローラーの動的セルプロトタイプからアウトレットを作成することはできません。
UITableViewCell
をサブクラス化し、このクラスをプロトタイプに関連付ける必要があります。
次に、Ctrlキーを押しながらラベルからUITableViewCell
サブクラスヘッダーファイルにドラッグします。
最後に、UITableViewCell
ヘッダーファイルをインポートした後、デリゲートコードでこのアウトレットにアクセスできます。
これはApple there "動的行コンテンツのテクニック"セクションで文書化されています。
または、ラベルにタグ(100など)を付けて使用することもできます
myLabel = [myTableView viewForTag:100];
ラベルを取得する
ラベルにタグを付けると、Table ViewのviewWithTagのように、ViewControllerのどこからでもラベルにアクセスできます。
UILabel *destinationLabel = (UILabel *)[self.tableView viewWithTag:1];
destinationLabel.text = @"Label Destaination";
私自身も同じエラーがありました。将来の読者にもう1つの重要な根本原因を追加するだけです。
私の場合、あるプロトタイプセルから次のプロトタイプセルにコントロール(この場合はボタン)をコピーしましたが、アクションは引き続き隣接セルを参照していました。私のテーブルにはいくつかの異なるプロトタイプセルがあります。
事実、プロトタイプセルに適切に接続されたUITableViewCellの適切なサブクラスであるという事実により、実際に間違いを見ることは困難でした。
私は同じ問題に直面しましたが、後でそれは単なる愚かな間違いであることが判明しました。 誤ってCellからラベルをコントローラーの@interface
これもあなたの問題かもしれません。一度クロスチェックしてください。