我有一个 View 可以在 UITableView 中显示商店列表。
用户应该能够修改某些过滤器显示的商店。 例如,应该可以显示商店按名称排序(第一个字母作为部分标题)。此外,用户应该能够仅显示收藏夹或按类别对商店进行排序(类别名称是部分标题):
我不想用一个 TableView 来处理所有过滤器,因为我认为根据当前过滤器,这将是一堆 if-then-else 标记。所以我决定创建4 UITableViewControllers 每个都处理一个过滤器。
这正是我所需要的,到目前为止没有冗余,因为 tableVC 委托(delegate)和数据源方法需要以不同的方式实现。
但现在我确实需要一个根据表格的滚动位置出现的标题。这在所有 4 个表中都是完全相同的。但现在我该如何解决这个问题呢?
在四个UITableViewControllers中分别实现UIScrollViewDelegate方法是多余的吗?创建一个处理scrollView方法的ParentViewController(由于表数据源和委托(delegate)方法,这不会那么容易......
有什么建议可以正确解决这个问题吗?你会怎么做?
如果有任何帮助,我将不胜感激,提前致谢。
最佳答案
我将创建一个父类,负责处理 header 并从中派生过滤器的 UITableViewControllers。
父类(super class)负责公共(public)元素(如标题),子类负责实际显示。
或者,您可以创建一个重载方法,该方法返回要显示的单元格数组。
存储这个数组,当委托(delegate)(在父类(super class)中)请求“单元格数据”时,给他数组中相应的元素。
关于iphone - UIViewController 设计模式多个 UITableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11592687/