2

我计划开发一个包含多个页面的清单应用程序。每个页面都将显示一个简单的是/否问题列表和页面底部的“下一步”按钮。

在应用程序设计方面,我看到了两个选项

  1. 一个UIViewController 带有一堆整页 UIView(分层,z-index)。从第 1 页切换到第 2 页我将使用sendSubviewToBack

  2. UIViewController 每页一个。从第 1 页切换到第 2 页,我将介绍新的 ViewController。

问题:这两种方法的优点和缺点是什么。我监督过的任何其他选择?你有什么经验和建议?

4

3 回答 3

2

Apple 在实现相同想法时选择了每页一个视图控制器的方法。这可能部分是为了最大限度地提高通用性——不同的用户UIPageViewController显然会有不同的需求。但另一个考虑因素是记忆。如果您在多个子视图方法中有几十页,那么您将有几十个整页子视图,这是一种在任何给定时间使用比实际需要更多的内存的快速方法。

如果您确实使用单个视图控制器和多个子视图,请考虑仅在需要时实例化子视图,并从视图层次结构中删除不需要的子视图。事实上,因为听起来您的所有页面都使用相同的格式(清单),所以很难理解为什么您需要的页面不止一个视图。当用户选择不同的页面时,您只需为视图提供一组新数据以进行绘制。

于 2014-11-24T16:59:33.277 回答
0

我认为这取决于您将根据自己的观点做什么。如果两者对数据具有相同的行为,我将只使用一个UIViewController. 如果您必须进行更多不同的治疗,我会使用两个UIViewController.

使用两个也可以更轻松地在它们之间进行漂亮的过渡(由 iOS 处理)。如果您使用一个,也许您应该使用 aUIScrollView并在其中添加两个视图并以编程方式滚动。

另一种方法是使用 aUITableView在一个视图中直接显示所有数据。

于 2014-11-24T16:48:40.660 回答
0

假设您知道如何编写好的代码(重用视图/视图控制器),它们应该具有相同的优点和缺点。

一位赞成这种UIViewController方法的专家是它很可能会产生更清晰的代码。您还可以查看生命周期事件,例如viewDidLoadviewWillAppearviewDidAppear等,让您更清楚地了解正在发生的事情。

于 2014-11-24T16:46:49.967 回答