Как настроить статический UITableView как подпункт UIView?
Когда я работаю с TableViewController
, я могу настроить весь свой контент в раскадровки. Поскольку я использую статические ячейки вместо динамических свойств для моего представления в таблице, я считаю этот метод более удобным и простым в реализации. Я подключаю новый класс UITableView и просто удаляю все методы делегата. Работает как шарм, поскольку ВСЕ файлы контента/кнопки устанавливаются в раскадровки.
Я пытаюсь выполнить тот же результат, за исключением этого времени, мне нужно работать в ViewController
и добавить TableView
в качестве подзапроса. Как только я подключу правильный класс, добавьте мое выходное соединение и настройте следующих делегатов:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 3;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"MainCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
return cell;
}
Это хорошо работает, если для моего TableView
установлено значение Динамические свойства:
![enter image description here]()
Но когда я изменяю содержимое табличного представления на Статические ячейки и удаляю метод делегата, мое приложение падает. Итак, как добавить табличное представление со статическими ячейками (что я могу манипулировать в раскадровках) на мой ViewController
?
Ответы
Ответ 1
Вот что вы можете сделать. В своем раскадровке создайте родительский контроллер представлений, который также содержит все ваши представления, отличные от вида tableview, создайте UITableViewController. В контроллере родительского представления создайте представление контейнера, удалите контроллер вида, который он добавляет автоматически, и щелкните правой кнопкой мыши и перетащите из представления контейнера в ваш UITableViewController, чтобы создать встроенный сегмент. Ваш конечный результат должен выглядеть примерно так:
![enter image description here]()
Ответ 2
Вам все равно нужно сделать пару вещей:
Добавьте <UITableViewDataSource, UITableViewDelegate>
в ваше объявление @interface.
Затем вы можете установить их также в Interface Builder.
Внесите cellForRowAtIndexPath
и вызовите метод dequeueReusableCellWithIdentifier
, чтобы вернуть ячейку.
Извините, я ошибся. По правде говоря, вы не можете использовать статические ячейки без UITableViewController
. Сожалею.
Решение может заключаться в том, что вы создаете два контроллера и просто добавляете view
контроллера табличного представления к вашему другому контроллеру представления.
Ответ 3
Насколько я знаю, вы не можете сделать это напрямую. По крайней мере, в iOS 6 вам приходилось использовать UITableViewController при использовании статических ячеек. Одним из способов использования статического представления таблицы внутри UIViewController было бы добавить представление контейнера в IB и сделать встроенный контроллер контроллером табличного представления (удалить UIViewController, который вы получаете автоматически, перетащить в UITableViewController и связать его с встраиванием непосредственно перейти). Вы можете получить ссылку на этот контроллер табличного представления из UIViewController, выполнив prepareForSegue: sender:, и используя свойство destinationViewController (которое укажет на контроллер табличного представления).