iphone - UIViewController 设计模式多个 UITableView

标签 iphone objective-c ios ipad uitableview

我有一个 View 可以在 UITableView 中显示商店列表。

用户应该能够修改某些过滤器显示的商店。 例如,应该可以显示商店按名称排序(第一个字母作为部分标题)。此外,用户应该能够仅显示收藏夹按类别对商店进行排序(类别名称是部分标题):

enter image description here

我不想用一个 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/

相关文章:

ios - 电话号码的特定号码格式化程序

iphone - 如何在iOS中取消推送通知

ios - 加载 ICarousel 的 MPMovieControl 无法正常工作

ios - Google Admob 无法使用 Objective-C 运行 Xcode 7.2

ios - 分配位置后SKSpriteNode变为null

Objective-C修饰符问题

iphone - 重构为 arc 结果为 "synthesize of ' 弱属性仅允许在 arc 或 gc 模式下”

iphone - 单个 iPhone 应用程序中的多个 Facebook 帐户

ios - Xcode 7.1 更新错误

ios - 在没有子类化的情况下在 UIView 中绘制 UIBezierPaths?