在单个视图控制器中拥有多个表视图的最佳实践
Posted
技术标签:
【中文标题】在单个视图控制器中拥有多个表视图的最佳实践【英文标题】:Best practice to have multiple tableviews in a single view controller 【发布时间】:2015-05-15 08:15:16 【问题描述】:这个问题可能已经在 *** 中提出。但是,我对我的场景没有任何明确的想法。
我有一个视图控制器(比如 MyViewController)。
我有一个滚动视图(Say, MyScrollView),其中有 N 个视图 (Say MyView1, MyView2, ...)。
这些视图可以水平滚动。请参阅下图以获得更多说明。
这张图片来自here。
所以,红色区域是包含多个黄色视图的滚动视图。
场景:
我想为每个视图调用 API,当 API 调用和解析数据发生时,我需要在视图中显示一些加载活动指示器。解析成功后,需要用 UITableView 更新对应的视图。
问题:
就我而言,视图的数量可能从 3 到 6 不等。我应该维护 6 个单独的 UITableView 和 UIActivityIndicator 吗?
我尝试使用左、中和右三个指针来保存 tableview 和活动指示器的引用。但问题是,在前三个页面加载之前,如果用户转到第四个视图,这个系统就会崩溃,条件这么多。
需要建议。迷茫!!
【问题讨论】:
我对你为什么在UITableView
中使用UIScrollView
感到有些困惑?我建议在水平样式中使用UICollectionView
。
不,我没有在 UITableView 中使用 UIScrollView。我有包含多个 UIViews 的 UIScrollView。每个 UIView 中都有每个 UITableView。
尝试使用UIPageViewController
,可以通过数据源方法添加多个视图控制器实例。在您的情况下,您可以在其中使用带有 tableview 的视图控制器。在页面控制器的数据源方法中,您可以将该视图控制器的实例传递给最多页面数。看看this example
【参考方案1】:
我认为您必须将 UIPageViewController 与 UITableView 一起使用。它会解决你的问题。
【讨论】:
以上是关于在单个视图控制器中拥有多个表视图的最佳实践的主要内容,如果未能解决你的问题,请参考以下文章
什么是 NSManagedObjectContext 最佳实践?