如果用户在UIPageViewController
上浏览到不支持当前界面方向的新视图控制器,我正试图让设备旋转。我希望获得或多或少相同的行为,就好像模拟推送VC一样。
示例:UIPageViewController
的当前VC支持所有接口方向,用户可以浏览下一个VC,该VC只应以横向显示。
我使用默认的Page-Base-Application-Template进行测试,并实现了DataViewController的shouldAutorotateToInterfaceOrientation
方法,如下所示:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if (UIInterfaceOrientationIsLandscape(interfaceOrientation)) {
return YES;
}
if ([self.dataObject isEqualToString:@"February"]) {
return NO;
}
return YES;
}
我的期望是,如果我在2月份浏览到视图控制器,屏幕将旋转到横向,但它保持纵向。有趣的是,shouldAutorotateToInterfaceOrientation
被调用,如果我浏览到二月-VC,则返回NO。
我还在RootViewController
检查方向,但没有运气。
我现在没有任何想法。 任何建议都将非常感谢,谢谢!
答案 0 :(得分:0)
有趣的部分是 如果调用了shouldAutorotateToInterfaceOrientation,则返回NO 我浏览了二月-VC
在这种情况下,我建议您唯一的方法是继承UIPageViewController。显然,它知道它对shouldAutorotate
的回复应该是什么,并且你不同意该回复,所以你需要提供不同的回复。
听到UIPageViewController的行为与此类似,我并不感到惊讶 - 毕竟,UINavigationController的工作方式相同:如果将视图控制器推到导航控制器的堆栈上,并且该视图控制器不允许设备的当前方向,界面不旋转到视图控制器允许的方向。我通过展示一个视图(曾经被称为模态视图)来解决这个问题,它强制设备旋转。