2011-11-02 24 views
6

数日前、私はUITableViewControllerでカスタムセルを使用する方法を説明するビデオチュートリアルを見ました。 UI Builderでカスタムセルを直接準備できることを学んだので、次のようにしました。IBOutletをUITableViewControllerからカスタムセルに直接接続する方法は?

私はUITableViewControllerを作成し、IBOutlet(UILabel)で構成されたカスタムクラスを接続しました。その後、私はストーリーボードに切り替え、UILabelでカスタムセルを準備しました。最後に、UITableViewControllerのラベルをカスタムセルに直接接続します。

次の処理が行われます。

Couldn't compile connection: <IBCocoaTouchOutletConnection:0x400724860 <IBProxyObject: 0x4007872c0> => productLabel => <IBUIImageView: 0x401080220>> 

は、これを直接接続することが可能ではないですか? WWDC 2011セクション(セッション#309)のチュートリアルビデオで、彼らはまさに私がやったことをしています。しかし、フックがあります:コードを表示しないで、私は上記のように接続します。実際 enter image description here

答えて

3

私はビデオを見ていると、彼らはあなたがお勧めの方法を接続していない:よりよく理解するために

は、私は私が接続し、何を示すスクリーンショットを追加します。彼らは細胞から細胞のUILabelに接続しています。つまり、UITableViewCellのサブクラスを持ち、カスタムオブジェクトのIBOutletを接続しています。基本的なフォームでは、カスタムセルクラスを作成し、インターフェイスを宣言してプロパティを合成するだけでよいのです。ストーリーボードにIDとカスタムクラスを正しく設定してください。

これが役に立ちます。

+0

はい、これは正しいです。これはおそらくUITableViewCellのサブクラスです。 – Simon

+0

私は再びビデオを見ました。あなたが正しい!私のせい。ごめんなさい。私の次の質問は、データをセルに埋め込む方法です(プロパティはTableCell.hに移動され、そこでアクセスできません - cellForRowAtIndexPath:(NSIndexPath *)indexPath in UITableViewController)。もしあなたがそれについての素早い答えを知っていれば、歓迎です。そうでなければ私はGoogleに尋ねます。誰かが以前に尋ねたと確信しています; o) –

+0

上記のコメントで説明したのと同じ問題がある人はhttp: ://www.youtube.com/watch?v = d_kO-J3DYvc –

4

this questionで同じ問題が発生しました。私の質問の回答者が言ったように、問題はここのセルがプロトタイプのセルであるということです。セル要素とUITableViewController間の接続は、起動時に作成されるため静的なセルを持つテーブルビューでうまく動作しますが、プロトタイプセルの多くはおそらく作成されるため意味がありません。 cellForRowAtIndexPathが呼び出されるまで存在します。 (これは実際には貧弱なエラーメッセージです.Xcodeはこのような違法な接続を許可しないはずです)

関連する問題