私はUITableViewControllerについてちょっと混乱しています...私が関心を持つ限り、それらは一般的にはUITableViewのデリゲートとデータソースです(違いはありますが)。UITableViewControllerデリゲートとデータソースを設定する
しかし、Interface BuilderのUITabBarViewControllerにUITableViewControllerを埋め込む場合のように、私たちはIBでテーブルビューコントローラを開始します。したがって、私の理解では、デフォルトイニシャライザが呼び出されています。
しかし、この場合には、私は、コードのこの部分があります
@interface Settings : UITableViewController {
}
そして、私はのUITableViewのデリゲートとデータソースは、このクラスにフックアップされていることが分かりIBでを。
@interface Settings : UITableViewController <UITableViewDelegate, UITableViewDataSource>
{
}
と.mファイルに:
- (void)viewDidLoad {
[super viewDidLoad];
[tableView setDelegate:self];
[tableView setDataSource:self];
}
私は確かにいくつかのケースどこにつまずいている私の質問は、なぜそれが我々が明示的にそれが以下であることを言う必要はないということである、です私は何らかの作業をするために上記のコードを明示的にコード化する必要があります。それは私にとって謎はまだですが、それが必要な理由のよう...
ありがとう、それは私が必要なものです。デリゲートとデータソースを自分自身に設定するのはどうですか?それは実際に必要ですか? –
これは、デリゲートメソッドが呼び出されるオブジェクトを定義するため、必要です。これをtableViewとして想像すると、デリゲートとdataSourceに表示される行やセクションの数、セルの見た目などを「質問」します。そのため、どのオブジェクトがデリゲート(つまり、誰に依頼するのか)をtableViewに伝える必要があります。 –
Björnありがとうございますが、UITableViewControllerサブクラスである新しいファイルを作成すると、デリゲートとデータソースの両方がIBのファイル自体に接続されます。これは、この場合、手動でこれを手動で行う必要はないということですか? –