1

我正在开发一个使用 UIPageViewControllers 的客户端项目。

该应用程序具有“集合”视图控制器的层次结构,用户可以通过这些视图控制器导航到(在这种情况下)包含内容页面的页面视图控制器。

我的设计是让“集合”视图控制器的层次结构成为 UIViewController 的自定义子类,它们知道如何使用客户端所需的 UI 管理子视图控制器的集合。

显示页面视图控制器的视图控制器是我的父集合视图控制器的子类,并且该父视图控制器类可能管理页面视图控制器、封面流样式视图控制器、表格视图控制器或其他各种控制器。

好的,所以我不能让管理页面视图控制器的视图控制器成为我的父视图控制器和 UIPageViewController 的子类。

这是一个 iOS 6 项目,所以我决定让我的视图控制器包含一个使用嵌入 segue 的页面视图控制器。这可以轻松地处理父/子视图控制器的内务管理,或者我是这么认为的。

但是,客户端想要在视图控制器中进行页面卷曲过渡,并且您似乎无法在初始化后更改页面视图控制器的过渡,也无法指定导航方向、脊椎位置等。

唔。看来我在第 22 个问题中。

有谁知道使用嵌入 segue 将页面视图控制器嵌入另一个视图控制器的子级并控制您使用 initWithTransitionStyle:navigationOrientation:options: 获得的设置的方法?

在这一点上,我可能需要放弃嵌入 segue 并手动管理父/子视图控制器关系,这是一项相当大量的工作,尤其是当您处理从父级到子级转发自动旋转和其他消息时。

4

1 回答 1

4

好的,问题解决了。

IB 中有 UIPageViewController 的设置,可让您控制过渡样式、导航方向和选项。

问题是当我在父视图控制器中创建容器视图时,IB 创建了一个通用 UIViewController 作为子视图,我将它的类型更改为 UICollectionViewController。当我这样做时,设置保留了通用 UIViewController 的设置。

我必须删除 IB 创建的通用子 UIViewController,将 UIPageViewController 场景拖到情节提要中,然后从集合视图控制拖动到我的新 UIPageViewController 并选择“嵌入”作为我想要的 segue 类型。当我这样做时,它给了我所需的设置。

于 2013-07-02T23:11:33.593 回答