43

私は非常に大きなプロジェクト(〜20シーン)を持っています。そのうちの 1 つは、カスタム UITableViewController クラスを持つ TableViewController です。セルに再利用識別子を与え、ラベルを追加しました。Ctrl キーを押しながらラベルを UITableViewController ヘッダー ファイルにドラッグしてアウトレットを作成しようとすると、次のエラーが発生します。

エラー: 構成が正しくありません: 接続 "tableInfoView" は、宛先としてプロトタイプ オブジェクトを持つことはできません。

これは何ですか?私は明らかな何かを見落としていますか?または、カスタム セル クラスを作成し、そこにアウトレットをドラッグする必要がありますか? その場合、UITableViewController からセルごとに一意に表示されるデータを指定するにはどうすればよいですか?

4

7 に答える 7

67

UITableView実際、デリゲート ビュー コントローラーで動的セル プロトタイプからアウトレットを作成することはできません。

サブクラス化してからUITableViewCell、このクラスをプロトタイプに関連付ける必要があります。

次に、ラベルからUITableViewCellサブクラスのヘッダー ファイルに Ctrl キーを押しながらドラッグできます。

UITableViewCell最後に、ヘッダー ファイルをインポートした後、デリゲート コードでこのアウトレットにアクセスできます。

これは、Appleの「The Technique for Dynamic Row Content」セクションで文書化されています。

于 2012-10-25T09:32:28.520 に答える
10

または、ラベルにタグ (例: 100) を付けて使用することもできます

myLabel = [myTableView viewForTag:100];

ラベルを取得する

于 2013-07-10T11:58:10.287 に答える
2

私自身も同じエラーが発生しました。将来の読者のために、潜在的な根本原因をもう 1 つ追加するだけです。

私の場合、あるプロトタイプ セルから次のプロトタイプ セルにコントロール (この場合はボタン) をコピーしましたが、アクションはまだ隣接セルを参照していました。私のテーブルには、いくつかの異なるプロトタイプ セルがあります。

実際にはプロトタイプセルに適切に接続された UITableViewCell の適切なサブクラスであったという事実は、実際に間違いを確認することを困難にしました。

于 2013-03-03T12:24:20.487 に答える
2

ラベルにタグを付けると、テーブル ビューの viewWithTag のように、viewcontroller のどこにでもラベルにアクセスできます。

    UILabel *destinationLabel = (UILabel *)[self.tableView viewWithTag:1];


    destinationLabel.text = @"Label Destaination";
于 2014-06-02T08:20:04.260 に答える
1

私は同じ問題に直面しましたが、後でそれはただのばかげた間違いであることがわかりました。 ラベルを誤ってセルからコントローラーにドラッグしました@interface

これもあなたの問題かもしれません。一度クロスチェックするだけです。

于 2013-01-22T12:22:07.717 に答える
-1

プロトタイプセルのストーリーボードの.mファイルで使用される適切な再利用識別子を設定します。私は同じ状況にあり、これは私を助けました

于 2013-11-22T17:09:08.173 に答える
-2

問題がまだ存在する場合はすべてを正しく行った後、すべてのアウトレットを削除して慎重に再結合すると、私にとっては非常にうまく機能しました。

于 2014-03-27T09:47:15.817 に答える