显示模式时在 UIPageViewController 中滑动到不同的视图控制器

Posted

技术标签:

【中文标题】显示模式时在 UIPageViewController 中滑动到不同的视图控制器【英文标题】:Swipe to different View Controller in UIPageViewController when modal is presented 【发布时间】:2014-04-02 19:20:28 【问题描述】:

我在一个 UIPageViewController 中有几个 UIViewController。然后我可以在这些视图控制器之间滑动,一切正常。但是,这些视图控制器中的大多数都使用 presentViewController: 呈现模态视图控制器。当屏幕上有一个以这种方式呈现的视图控制器时,我无法再在 UIPageViewController 中的其他视图控制器之间滑动。

例如,如果一个视图控制器是电子邮件而另一个是地址簿,则电子邮件可能会执行 presentViewController: 来编写新的电子邮件。用户想要滑动到地址簿视图控制器以查找电子邮件地址。由于此模式视图,当前禁用了滑动手势。当其中一个呈现模态视图时,有没有办法在我的页面视图控制器的 VC 之间启用滑动?

【问题讨论】:

【参考方案1】:

我建议你根本不要展示它。 只需添加一个视图控制器作为子视图控制器,同时将其视图添加为当前的子视图:

[self addChildViewController:composeMailController];
self.view addSubivew:composeMailController.view;

将其添加为子级会将一些事件(如旋转)从父级传递给子级。

当然,如果这种方法对您有效,您将不得不为子视图的外观设置动画。

【讨论】:

这是一个想法,但这是一个大型应用程序,我不是唯一一个开发它的开发人员。我需要让所有其他开发人员对他们的代码进行此更改,这会很痛苦。 在这种情况下,您可以添加手势识别器并要求呈现视图控制器要求页面视图控制器以编程方式更改页面。在这种情况下,您将失去页面卷曲动画。 我没有使用页面卷曲动画。但是使用这种方法我会失去拖动功能(按住手指并在 VC 之间移动;而不仅仅是滑动)。

以上是关于显示模式时在 UIPageViewController 中滑动到不同的视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

显示模式时在 UIPageViewController 中滑动到不同的视图控制器

如何在显示仪表板时在 Grafana 门户上启用 url 加密

从 Toad 导出时在数据集中包含 ROWID

django的登录模式?

搜索时在字符类型上创建 url 请求的好方法

如何在应用程序处于后台模式时在 iOS 10 中播放自定义音频