ios - 如何最好地将使用一个 UIViewController 将所有页面作为 UIView 处理的图书应用程序转换为 StoryBoarding 和 UIPageView?

标签 ios uistoryboard uipageviewcontroller

我有一个图书应用程序,大约有 30 页,每个页面都是一个 UIViewController 中的 UIView。我想将其转换为使用 StoryBoarding 和 UIPageViews 的应用程序。看起来 UIPageView 中的每个“页面”都必须是 UIViewController,而不是 UIView。解决这个问题的最佳方法是什么?我需要为每个 UIView 页面制作一个 UIViewController 吗?

最佳答案

是的。将所有 UIView 子类重写为 UIViewController 子类。我已经在我的几个项目中做到了这一点,结果发现这有点乏味。对于我的项目,我发现最简单的方法是创建一个新的 Xcode 项目并构建新的基础设施。然后为每个旧的 UIView 类创建新的 UIViewController 类。然后,我将旧 UIView 类中的大部分代码复制并粘贴到新的 UIViewController 类中。我将很多 self 更改为 self.viewUIViewController 的生命周期比 UIView 稍微复杂一些,因此我最终将一些初始化代码从指定的初始化器移至 viewDidLoadviewWillAppear 我的 UIViewController 子类中的方法。

对评论的回应:在我的应用程序中,许多页面都有独特的交互功能,因此我编写了一个独特的 UIViewController 子类来管理这些功能。有些页面将具有相同的功能但内容不同。这些只会使用一个 UIViewController 子类的多个实例。我的模型对象将创建这些 UIViewController 子类并用适当的内容填充它们。

换句话说,无需为每个页面编写新的 UIViewController 子类。页面上只有尽可能多的具有独特功能的数量。如果您的页面不执行任何操作,您甚至可以只使用 UIViewController 而无需子类化。

关于ios - 如何最好地将使用一个 UIViewController 将所有页面作为 UIView 处理的图书应用程序转换为 StoryBoarding 和 UIPageView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9356075/

相关文章:

ios - 如何弹出初始 View Controller

ios - iOS 上的 Google Play 游戏服务出错

ios - SHLineGraphView - 设置图形原点值

ios - 几个小部件使用 XCode Storyboard(或 "doing it wrong")?

objective-c - 基于分页的 iPhone 应用程序 - 在 DataViewController 中使用 RootViewController 中的函数

ios - 带按钮的可滚动菜单部分

ios - 在不遵守 iPhone 铃声/静音开关的情况下在后台播放声音

ios - 符号 ="YES"在 InterfaceBuilder 的 XML 中意味着什么?

ios - 如何将边缘设置为零?

Swift PageView 导航器按钮设置为新的 UIpageview