Col*_*ber 5 objective-c rotation uisplitviewcontroller ios ios8
好的,这是一个奇怪的.
在iOS 8中,如果在纵向中从UISplitViewController中的主面板呈现弹出框,则禁用旋转.我经历了一系列的测试并证实了这种情况.
在UISplitViewController上有一个私有方法,_shouldPreventAutorotation,在旋转时调用并检查popover内容控制器上的presentationController属性.如果返回非零值,则禁用旋转.如果覆盖该属性并返回nil,则再次启用旋转.
有谁知道为什么在iOS 8中添加了这种行为?
我上传了这个演示了此行为测试项目在这里.
因此,在Hopper中进行了一些调查和反编译之后,在UISplitViewController上有一个私有方法,当旋转设备时会调用该方法来确定是否应该禁用旋转.
如果主面板可见,主面板有一个子模态视图控制器(在本例中为弹出框),并且呈现的弹出框架的presentationController属性返回非零值,然后禁用旋转.
我可以通过覆盖popover控制器上的-presentationController来覆盖此行为,并返回nil.尚不确定任何副作用,但它的工作原理.
- (UIPresentationController *)presentationController {
return nil;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
492 次 |
| 最近记录: |