2012-04-20 9 views
2

私はMainViewControllerを持っており、それぞれに異なるセルを持つ2つのUITableViewを追加したいと思います。しかし、私はMainViewControllerコードをテーブルの委譲メソッドにチェックインして、それがどのテーブルであるかを調べ、それに基づいて動作するようにしたくありません。それはあまりにも面倒です。UITableViewをサブクラス化するのはいつですか?

だから私は私がする必要があると思いますすべてが

CustomTable *customTable = [[CustomTable alloc] init]; 
[self.view addSubview:customTable]; 
で、私はのUITableViewをサブクラス化し、それ自体がcellForRowと他のテーブルのメソッドを処理させるだろうと思った、と私はMainViewControllerにテーブルを追加するこの方法

であり、すべてのデリゲートメソッドがそのクラスで処理されるため、MainViewControllerが混乱することはありません。

私はこれに間違っていますか?代わりにUITableViewControllerをサブクラス化する必要がありますか?違いは何ですか?

+1

UITableViewDelegate/DataSourceを実装するNSObjectの2つのサブクラスを作成し、作成する各MainViewControllerに対して、それらのクラスの1つを作成し、提供する情報でテーブルを処理させるのはなぜですか? – EmilioPelaez

+0

私は理解していません。私は1つのMainViewControllerと2つのtableViewsしか持っていません。 – Snowman

+0

普通のUITableViewを作成しましょう。私はそのテーブルのデリゲートメソッドを扱う別のNSObjectサブクラスを割り当てることができますか?それはあなたが言っていることですか?どうすればいい? – Snowman

答えて

10

サブクラスにするときUITableView?今はやめろ。

View Controllerのメンバ変数である2つのクラスを作成します。 2つの新しいクラスのそれぞれでテーブルビューのデリゲートをポイントします。

Cocoaでは、通常はJavaやC#で行うように、クラスを継承するのではなく、クラスを継承する傾向があります。

+1

私はこれを2回投票することができれば幸いです!テーブルビューのデリゲートがビューコントローラを所有しているところで簡単に取得できます。その習慣を壊すとここで素敵な答えが得られます。 – danh

+0

ここでもう少し説明してもらえますか?どうすればこのことをやりますか? – MobileMon

+0

"@class"構文を意味しますか? – MobileMon

5

のObjective-Cプログラマとして、プロの作業の3年間で、私は、一度パターンをのUITableViewをサブクラス化する必要はありませんでした、ココアは、依存される - MVCdelegationsprotocolsを使用して)、単純なまだ強いです十分な。そしてpopulating a tableview is just one of the best examples

このトピックをすべて理解していることを確認してください。そうでないと、フレームワークと絶えず戦っていることに気付くでしょう。

関連する問題