我正在开发一个使用UIPageViewControllers的客户端项目。
该应用程序具有“集合”视图控制器的层次结构,用户可以通过该控制器来访问(在这种情况下)包含内容页面的页面视图控制器。
我的设计是让“集合”视图控制器的层次结构成为UIViewController的自定义子类,它知道如何使用客户端所需的UI管理子视图控制器的集合。
我的显示页面视图控制器的视图控制器是我父集合视图控制器的子类,该父视图控制器类可能管理页面视图控制器,封面样式视图控制器,表视图控制器或其他各种控制器
好的,所以我不能让管理页面视图控制器的视图控制器成为我的父视图控制器和UIPageViewController的子类。
这是一个iOS 6项目,所以我决定让我的视图控制器包含一个使用嵌入segue的页面视图控制器。它无痛地处理父母/子视图控制器的内务处理,或者我认为。
但是,客户端需要在视图控制器中进行页面卷曲转换,看起来在初始化后无法更改页面视图控制器的转换,也无法指定导航方向,脊椎位置等。
嗯。似乎我陷入困境22。
有没有人知道如何使用embed segue将页面视图控制器嵌入另一个视图控制器的子节点并控制使用initWithTransitionStyle获得的设置:navigationOrientation:options:?
此时我可能需要放弃embed segue并手动管理父/子视图控制器关系,这是相当多的工作,特别是当您处理从父到子转发自动轮换和其他消息时。
答案 0 :(得分:4)
好的,问题解决了。
对于UIPageViewController,IB中有ARE设置,可让您控制过渡样式,导航方向和选项。
问题在于,当我在父视图控制器中创建容器视图时,IB创建了一个通用的UIViewController作为子项,我将其类型更改为UICollectionViewController。当我这样做时,设置保留了通用UIViewController的设置。
我不得不删除IB创建的通用子UIViewController,将UIPageViewController场景拖入故事板,然后从集合视图控制拖动到我的新UIPageViewController并选择“embed”作为我想要的segue类型。当我这样做时,它给了我我需要的设置。