Подтвердить что ты не робот

IOS - В чем разница между Table View и Table View Controller

В библиотеке объектов Xcode существуют два параметра, которые можно использовать для создания вида таблицы - таблицы и контроллера табличного представления. В чем разница между ними и когда они будут использоваться?

4b9b3361

Ответ 1

TableViewController - это ViewController с встроенным TableView. Это потребует, чтобы методы делегата были уже объявлены и настроены. Этот VC уже является делегатом TableView и источником данных. Его нельзя изменить. Поверхность - это простота использования, недостаток - очень ограниченная гибкость.

TableView - это просто TableView (подкласс UIView). Его можно добавить в ViewController и изменить размер, использовать вместе с другим объектом, основанным на представлении, и т.д. Потенциал роста - это гибкость, недостатком является то, что вам нужно самостоятельно настроить методы делегата и источника данных (на мой взгляд, стоит потратить время гибкость).

Еще одно замечание: при использовании новых ячеек Static TableView (часть iOS5) вам необходимо использовать TableViewController.

Ответ 2

UITableViewController является подклассом UIViewController. Он уже предполагает, что у вас будет UITableView как ваш rootView, поэтому у вас уже есть доступ из кода в tableView (self.tableView). Он реализует протокол UITableViewDataSource и UITableViewDelegate. Это также дает вам множество способов переопределить. Это позволяет вам не зависеть от файла XIB, потому что вы уже знаете, что у вас будет (UITableView как rootView).

UITableView - это просто UIView, обычно вам придется соблюдать протоколы, на которые я ссылался выше в вашем UIViewController, чтобы заполнить (источник данных) и работать с ним (делегат), и вы, вероятно, необходимо создать IBOutlet для вашего UITableView.

С одной стороны у вас есть скорость, но вы не так гибки, как другой путь. С другой - наоборот.