Ios UIPageViewController:如何添加非分页工具栏或其他";“覆盖”;元素?

Ios UIPageViewController:如何添加非分页工具栏或其他";“覆盖”;元素?,ios,cocoa-touch,uikit,uipageviewcontroller,Ios,Cocoa Touch,Uikit,Uipageviewcontroller,我已经实现了一个PDF查看器。当前它是一个包含UIPageViewController的UIViewController。 在我的工具栏中,一些覆盖元素(如快速访问PDF的某些页面)被添加到标准的UIViewController的视图中。 然而,我想知道是否需要这样做?是否可以从UIPageViewController继承,对子控制器具有分页效果,并且在顶部仍然有不会分页的“浮动”元素? 或者说包含是一种方法吗?我们应该以编程方式创建UIPageViewController,并将其视图作为子视图

我已经实现了一个PDF查看器。当前它是一个包含
UIPageViewController
UIViewController。
在我的工具栏中,一些覆盖元素(如快速访问PDF的某些页面)被添加到标准的
UIViewController的
视图中。 然而,我想知道是否需要这样做?是否可以从
UIPageViewController
继承,对子控制器具有分页效果,并且在顶部仍然有不会分页的“浮动”元素?
或者说包含是一种方法吗?

我们应该以编程方式创建
UIPageViewController
,并将其视图作为子视图添加到另一个
UIViewController
的视图中。我们希望它们成为“覆盖”的元素应该是主机的子视图
UIViewController

例如,在
-viewDidLoad
中:

UIPageViewController *pvc = // init this on your own way
pvc.dataSource = // your data source

// Set page view controller's view's frame to match host view's frame
pvc.view.frame = self.view.bounds;

// And here comes the magic
[self.view insertSubView:pvc.view belowSubview:<any subview>];
UIPageViewController*pvc=//以自己的方式初始化
pvc.dataSource=//您的数据源
//将页视图控制器的视图框架设置为与主机视图的框架匹配
pvc.view.frame=self.view.bounds;
//魔法来了
[self.view insertSubView:pvc.view belowSubview:];
简单地说,我们只使用
UIPageViewController
的视图,而不使用它本身


希望这能有所帮助。

请注意,SO更像是一个问答资源,而不是一个帮助论坛,因此问题是否过时或询问者是否仍然感兴趣都无关紧要。为遇到相同问题并在搜索中找到线索的其他人发布答案完全符合SO的使命,如果还没有发布合适的答案,则强烈鼓励发布答案。这就是我所说的视图控制器控制的肮脏解决方案。您只是将一个视图控制器视图添加到另一个视图中,而不是使用正确的方法。这是一个合法的答案,允许您添加非分页工具栏或其他“覆盖”元素。因此,它提供了。因为这就是我们要问的。@Cad,它可能会遇到与UIController事件相关的各种问题,比如旋转。我已经有两个控制器,它们使用UIViewController容器。将视图作为子视图注入与此没有任何区别,但仍然是错误的方法。视图控制器包含和“子视图”注入被认为是相同的,但这是一个有效的解决方案,并且只是尝试了旋转,它是有效的。考虑任何可能的性能问题,但这只是将视图从一个更改为另一个。我想知道你为什么认为这样做是错误的。