我打算开发一个包含多个页面的检查列表应用程序。每个页面将显示一个简单的是/否问题列表和一个"下一个"页面底部的按钮。
就应用程序设计而言,我看到了两个选项
一个UIViewController
,其中包含一整页UIViews (分层,z-index)。从第1页切换到2我将使用sendSubviewToBack
每页UIViewController
一个。从第1页切换到2我将展示新的ViewController。
问题:这两种方法的PROS和CONS是什么?我监督的其他任何选项?你的经验和建议是什么?
答案 0 :(得分:1)
Apple在it's implementation of the same idea中选择了每页一个视图控制器方法。这可能部分是为了最大化通用性 - UIPageViewController
的不同用户显然会有不同的需求。但另一个考虑因素是记忆;如果您在多个子视图方法中有几十个页面,那么您将拥有几十个整页子视图,并且这是一种快速的方式,可以使用比您在任何给定时间实际需要的内存更多的内存。 / p>
如果您使用单个视图控制器和多个子视图,请考虑仅在您需要时实例化子视图,并从视图层次结构中删除您不需要的视图。实际上,由于听起来您的所有页面都使用相同的格式(清单),因此很难理解为什么您需要的页面只有一个以上的视图。当用户选择不同的页面时,您只需为视图提供一组新的数据即可。
答案 1 :(得分:0)
假设您知道如何编写好的代码(重用视图/视图控制器),它们应该具有相同的优点和缺点。
赞成UIViewController
方法的一位赞成者认为,它很可能会产生更清晰的代码。您还可以使用viewDidLoad
,viewWillAppear
,viewDidAppear
等视图生命周期事件,这些事件可以让您更清楚地了解正在发生的事情。
答案 2 :(得分:0)
我认为这取决于你将如何对你的观点做些什么。如果两者对数据具有相同的行为,我只使用一个UIViewController
。如果你需要做更多不同的治疗,我会使用两个UIViewController
。
使用两个也可以更容易地实现它们之间的漂亮过渡(由iOS处理)。如果你使用一个,也许你应该使用UIScrollView
并在里面添加两个视图并以编程方式滚动。
另一种方法是使用UITableView
直接显示一个视图中的所有数据。