关于何时使用 UIViewContoller 与 UIView 有一些很好的答案。例如这里和这里。
一般的要点是应该使用 UIVIewController 来控制全屏数据,因为
它旨在处理旋转。一次只能在屏幕上显示一个 UIViewController,因为只有最新的才会被通知发生了旋转。
为了忠实于 MVC 范式,您的业务逻辑应该存在于 UIViewController 中,而只有显示和交互逻辑应该存在于 UIView 中。大概业务逻辑与整个屏幕上的内容有关。
我的问题是,鉴于此,我如何构建一个在多个顶级视图之间进行左右分页的应用程序?
我想创建一个包含几个 UITableViews 的界面,其中包含一个食谱列表。用户左右滑动以在列表之间导航。底部有一个通用菜单,无论如何都保持固定。
我最初的想法是为 UIScrollView 使用一个 UIVIewController,然后从那里添加子视图。
但是我真的希望每个列表都有自己的 UIViewController,这样它就可以处理自己的旋转,并像自己的 REST 方法一样保存业务逻辑。让顶级 UIViewController 处理子子视图的旋转似乎很痛苦,将逻辑放在其他任何地方似乎违反了 MVC。
有没有办法构建一个应用程序,使多个 UIViewControllers 存在于一个 UIScrollView 中,或者使用一系列顶级 UIViewControllers 和 UISwipeGestureRecognizer 来模拟 UIScrollView 的分页效果是否合适?
谢谢。