2015-08-29 5 views
3

Я настраиваю страницу настроек моего первого приложения Swift и, похоже, не может найти чистый способ настройки отношения между деталями и представлением настроек дочерних таблиц ,Быстрая сгруппированная передовая практика UITableView

Interface Builder setup

Моя страница настроек является UITableViewController с пользовательским макетом сгруппированных ячеек. У меня также есть подробный UITableViewController, который я хочу использовать для представления параметров для различных настроек. Мое первоначальное мышление заставило меня подумать, что я могу использовать один контроллер для этого и просто менять ячейки на основе segue. Моя большая проблема загружается все данные в ячейках с момента сгруппированных таблиц не имеют прототипов клетки, которые я могу назвать в

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("reuseIdentifier", forIndexPath: indexPath) {}

Есть общепринятый способ настроить эти рода таблицы параметров, которые имеют определенное количество строк? Я мог бы сделать viewcontroller для каждой настройки, но это кажется расточительным.

+1

Это: «Сгруппированные таблицы не имеют прототипов» неверны. Разумеется, вы можете настроить групповое представление таблицы с использованием прототипов. – lukya

ответ

1

Несмотря на то, что он чувствует себя расточительным, он более интуитивно понятен и менее запутан, чтобы иметь (segues to) разные контроллеры.

Ваш детальный вид контроллер должен

  • параметры отображения
  • возвращения выбранный вариант
  • сохранить государственный

Итак, есть три точки, где вы в конечном итоге с большим блоки условного кода, чтобы определить, с какой группой параметров вы имеете дело, при отображении, размотке или сохранении/восстановлении деталей.

Если вы добавили больше опций, монолитный подход будет только расти все более и более сложным.

Монолитный подход также является наименее гибким, если вам когда-либо понадобится поддержка второго (не-галочки) типа выбора в будущем.

Разделение ответственности на различные (подклассы) контроллеры подробных представлений означает, что каждый контроллер может четко и просто обрабатывать свои собственные детали. Ваш код будет легче понимать, поддерживать и обновлять в будущем.