iOS   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – UINavigationController上的UIPageViewController在更改方向后不会重新传输其子视图控制器大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在制作以下视图控制器(VC)结构.

[UINavigationViewController] – > [UIPageViewController] – > [UIViewControllers]

那么,这个VC应该支持纵向和横向.

我所遇到的一个问题是改变方向到任何一方.

你可以看到问题.

红色区域是UIPageViewController上子VC的背景颜色.@H_674_11@蓝色区域是UIPageViewController的背景颜色.

我猜孩子VC没有被UIPageViewController转发.我已经弄清楚了很久.我终于找到了一个解决方法,将以下重写函数@L_772_5@到自定义UIPageViewController.

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
    [self setViewControllers:self.viewControllers
                   direction:UIPageViewControllerNavigationDirectionForWARD
                    animated:NO
                  completion:NULL];
}

然完成轮换后会@L_696_7@向下移动视图.这段代码粗略地解决了这个问题.

无论如何,我真的想知道任何好的和自然的解决方案.

updatE@H_674_11@我的应用程序在iOS6上运行良好.它可能是iOS7的bug?

解决方法

我已经解决了这个问题,将以下SINGLE代码行放在自定义UIPageViewController的[viewDidLoaded]中.
self.automaticallyAdjustsScrollViewInsets = NO;

我认为UIPageViewController有一个滚动视图,如果它嵌入在UINavigationController中,它会因为改变方向而错误地布局.

幸运的是,我的解决方案符合问题.

@mirkoCatalano感谢您的评论.这些对于找到正确的解决方案非常有帮助.

大佬总结

以上是大佬教程为你收集整理的ios – UINavigationController上的UIPageViewController在更改方向后不会重新传输其子视图控制器全部内容,希望文章能够帮你解决ios – UINavigationController上的UIPageViewController在更改方向后不会重新传输其子视图控制器所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。