我有一个图书应用程序,大约有 30 页,每个页面都是一个 UIViewController 中的 UIView。我想将其转换为使用 StoryBoarding 和 UIPageViews 的应用程序。看起来 UIPageView 中的每个“页面”都必须是 UIViewController,而不是 UIView。解决这个问题的最佳方法是什么?我需要为每个 UIView 页面制作一个 UIViewController 吗?
最佳答案
是的。将所有 UIView
子类重写为 UIViewController
子类。我已经在我的几个项目中做到了这一点,结果发现这有点乏味。对于我的项目,我发现最简单的方法是创建一个新的 Xcode 项目并构建新的基础设施。然后为每个旧的 UIView
类创建新的 UIViewController
类。然后,我将旧 UIView
类中的大部分代码复制并粘贴到新的 UIViewController
类中。我将很多 self
更改为 self.view
。 UIViewController
的生命周期比 UIView 稍微复杂一些,因此我最终将一些初始化代码从指定的初始化器移至 viewDidLoad
和 viewWillAppear
我的 UIViewController
子类中的方法。
对评论的回应:在我的应用程序中,许多页面都有独特的交互功能,因此我编写了一个独特的 UIViewController
子类来管理这些功能。有些页面将具有相同的功能但内容不同。这些只会使用一个 UIViewController
子类的多个实例。我的模型对象将创建这些 UIViewController 子类并用适当的内容填充它们。
换句话说,无需为每个页面编写新的 UIViewController
子类。页面上只有尽可能多的具有独特功能的数量。如果您的页面不执行任何操作,您甚至可以只使用 UIViewController
而无需子类化。
关于ios - 如何最好地将使用一个 UIViewController 将所有页面作为 UIView 处理的图书应用程序转换为 StoryBoarding 和 UIPageView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9356075/