2012-04-12 13 views
13

UITableViewController A(Interface Builder/Storyboard)で設計した動的カスタムセルプロトタイプを使用すると、 内陣)とcellForRowで、このような...私は、カスタムクラス(UITableViewCellのサブクラスを使用して、私ののUITableViewController Aにラベルや画像の親指と、それはすべての非常にうまく機能し、まっすぐ前方をアップリンクする)のは、MyCustomCellという名前を付けてみましょう。iOS5ストーリーボード:複数のUITableViewControllerでカスタムUITableViewCellを再利用

UITableViewController B(ストーリーボード)は、カスタムセル(ダイナミックセル)とまったく同じデザイン/機能を持っています。そこで、これらのセルのクラスをMyCustomCellに切り替えて、新しい識別子をcellBとします。 のUITableViewController B

、私はcellForRowでセルをデキュー...とCELLB新しい識別子を使用しています。注:ここでcellAを使用すると、多かれ少なかれ明らかにクラッシュにつながります。

しかし、テーブルビューが現れたときにアプリを実行している間、のUITableViewController Aはだけで正常に動作し、ほぼ同じのUITableViewController Bは(空セル)動作しません。ストーリーボードで

カスタムセルがのUITableViewController A以内に設計可能であるので、それは、一種のビットをオフに見えますが、のUITableViewController Bで、それは単純な、プレーンなセルです。クラスにもかかわらず、MyCustomCellに関連付けられています。

これらのセルを他のコントローラに貼り付けてコピーすることは避けてください(設計変更時にコピー間を大きく行き来する)。

+1

良い質問です。まさに私が疑問に思っていたことです。また、私はUITableViewCellの新しいサブクラスを追加すると、XIBを作成するオプションがグレー表示されます。 – theLastNightTrain

+1

これはかなりうまく答えられたと思います。http://stackoverflow.com/questions/9245969/in-a-storyboard-how-to-make-a-custom-cell-for-use-with-ultral-controllers – wolak

答えて

2

あなたがしていることは正しいです。私はそれが動作していない理由を知らない、それはテーブルビューを再ロードするといくつかの問題があるかもしれません。あなたのデータソースとデータソースメソッドで確認してください。

- (NSInteger) tableView:(UITableView *) tableView numberOfRowsInSection:(NSInteger) section 

ではなく、あなたが何ができるかです:ドラッグし

テーブルビューを

のViewControllerをドラッグして、

とそれを動的にして、あなたが以前にしたことをする;私が自分でしたとき、それは私のためにうまくいった。

1

セルがあなたのカスタムクラスから来たと言っても、それは同じ "設計された"という意味ではありません。ここで達成しようとしていること(と私が探しているもの)は、 "Contained" Cellの王様ですが、これはiOS 6のContainerViewControllerでのみ可能です。もう1つの選択肢は、その1つのセルにXIBを使用することです。ストーリーボードで概要を見る利点を失います。

0

私は同様の問題を抱えていましたが、その中にuitextフィールドを持つカスタムセルを作成しました。最初のテーブルビューでうまくいきましたが、2番目のテーブルビューではうまくいきませんでした。私は、テキストフィールドの代理人がカスタムセルに接続されていないことを理解しました。ストーリーボードで2つを結んだのは、テキストフィールドからの接続をアウトレットをテキストフィールドに戻すことです。

関連する問題