ios - Swift 分组 UITableView 最佳实践

标签 ios swift uitableview grouped-table

我正在设置我的第一个 Swift 应用程序的设置页面,但似乎找不到一种干净的方法来设置设置 View 和选项的子 TableView 之间的主从关系。

Interface Builder setup

我的设置页面是一个 UITableViewController,带有分组单元格的自定义布局。我还有一个详细的 UITableViewController,我想用它来显示各种设置的选项。我最初的想法让我认为我可以为此使用单个 View Controller ,只需根据 segue 更改单元格。我最大的问题是将所有数据加载到单元格中,因为分组表没有我可以调用的原型(prototype)单元格

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

是否有一种普遍接受的方法来设置这些具有定义行数的设置表?我可以为每个设置制作一个 View Controller ,但这感觉很浪费。

最佳答案

尽管感觉很浪费,但拥有(转至)不同的 View Controller 更直观,也更简单。

你的细节 View Controller 必须

  • 显示选项
  • 返回选择的选项
  • 保存状态

因此,在显示、展开或保留/恢复详细信息时,您最终会在三个点上使用大块条件代码来确定您正在处理的选项组。

如果您添加更多选项,单一方法只会继续变得越来越复杂。

如果您将来需要支持第二种(非复选标记)类型的选择,那么整体式方法也是最不灵活的。

将职责分离到不同的(子类)详细 View Controller 意味着每个 Controller 都可以清楚而简单地处理自己的细节。您的代码将更易于理解、维护和更新。

关于ios - Swift 分组 UITableView 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32286553/

相关文章:

iphone - iOS 线程等待操作

ios - Xcode 没有第二次调用 ViewDidLoad

ios - Swift 3 - SQLite 包装器

iOS:iMessage 样式的页眉和分隔线 UI

Swift 4 在 UITableViewCell 中禁用 UIButton 的正确方法

ios - Xamarin.ios:应用程序中未加载图像资源目录

ios - 如何以每秒240帧的速度录制和保存?

ios - Swift 超出范围....使用 tableView[indexPath]

String.Index(_ :within:) initializer crashing

IOS - UITableview 中的 UISegmented