Реализация пользовательского интерфейса, подобного почтовому приложению

#ios #iphone #uitableview

#iOS #iPhone #UITableView

Вопрос:

Я пытаюсь реализовать пользовательский интерфейс, похожий на почтовое приложение iPhone.

  • На главном экране отображается таблица. В таблице пользователь может выбрать ячейку, после чего запускается следующий экран. Внизу есть панель с коротким текстом и значком.
  • На втором экране отображаются сведения о ячейке. Это также будет отображение таблицы. На нижней панели отображаются значки, связанные с этим экраном.

Какие макеты я использую для реализации этого в Xcode? 1. Должен ли я использовать контроллер представления, добавлять представление и встраивать в него табличный вид и панель инструментов? 2. Должен ли я использовать контроллер представления таблицы и добавлять в него представление таблицы и использовать нижнюю панель инструментов, которая поставляется с представлением таблицы?

Главный экран Второй экран

В руководстве по программированию представления таблиц для iOS в разделе «Рекомендации по созданию и настройке табличных представлений» говорится: «Используйте экземпляр подкласса UITableViewController для создания табличного представления и управления им». Когда я использую это, нижняя панель может быть исправлена или исчезать только при переходе междудва экрана через segue. Это заставляет меня задуматься, должен ли я просто использовать контроллер представления, который противоречит рекомендации.

Ответ №1:

Используйте UIViewController

Почему?

Если вы собираетесь отображать больше, чем a tableView , рекомендуется использовать a UIViewController для раскадровки.

UIViewController гораздо более гибкие. Я предполагаю, что ваша путаница связана со следующей строкой документации:

Используйте экземпляр подкласса UITableViewController для создания табличного представления и управления им

Это не означает, что вы должны перетаскивать a UITableViewController на раскадровку. Это означает, что ваш класс должен наследовать UITableViewController или, по крайней мере, реализовывать методы deleguate and datasource .

Вы бы использовали UITableViewController только и только в том случае, если вам нужно отобразить tableView .

Комментарии:

1. Я только что попробовал это, внедрив UITableViewSource и UITableViewDelegate , и, похоже, это работает. Спасибо.