1

ご存知のように、Cocoa Touch のテーブル ビューは、フレームワーク要素の中で最も優れたものの 1 つです。便利なように、Apple は、テーブル ビューの機能を .vc にカプセル化する優れたビュー コントローラー クラスを提供してくれましたUITableViewController

同時に、画面全体を占めることなく、テーブル ビューの機能を利用したい場合もあります。ただし、サブクラス化してこれを行う方法はないようUITableViewControllerです。代わりに、テーブル ビューを接続し、手動で および にサブスクライブする必要がUITableViewDelegateありUITableViewDataSourceました。をサブクラス化しようとするとUITableViewController、ビューを画面に表示する前にアプリがクラッシュします...

私の質問は、私が見逃しているものはありますか? をサブクラス化するときUITableViewController、カスタム テーブル ビューを の tableView プロパティに接続しUITableViewControllerます。他にやらなければならないことはありますか?

4

2 に答える 2

8

UITableViewControllerUIViewControllerテーブルビューを作成して配置し、デリゲートとデータソースを(通常はそれ自体に)接続し、ビューコントローラーeditingプロパティをテーブルに渡し、ビューが表示されたときにいくつかの便利な UI ビットを実行します。(詳細については、[ドキュメント][1] を参照してください。)

上記のほぼすべては、A) 非全画面表示のテーブルを作成するために変更する必要があること、または B) それぞれ 1 行または 2 行で実行できることでありUITableViewController、便宜上のみ行うことのいずれかです。 . このような場合は、独自のUIViewControllerサブクラスを使用することをお勧めします。

于 2012-07-16T16:37:12.607 に答える
2

UIViewControllerステップ 1:の代わりにサブクラス化するUITableViewController

MyTableViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>

ステップ 2: インターフェイス ビルダーを使用して tableView とカスタム ビューを削除する

ステップ 3:ヘッダー ファイルのようIBOutletにtableView プロパティを宣言し、インターフェイス ビルダーで tableView にバインドします。MyTableViewController

IMHO、このプロセスにより、柔軟性が向上します。

于 2012-07-16T17:59:45.143 に答える