iOS8 MGSplitViewController替代方案

XYZ*_*XYZ 10 uisplitviewcontroller uipopovercontroller ios8

我在我的应用程序中使用MGSplitViewController库.直到iOS7它运行良好,但对于iOS8,由于iOS8中UIPopoverController 的行为改变,它无法按预期工作.附件是在iOS8上运行MGSplitView代码的屏幕截图:

iOS 8 MGSplitView

这显示了错误的行为.它应该像下面的截图: 在此输入图像描述

我已经读过某个地方MGSplitViewController库不会更新iOS8修复程序.有人知道我们是否有另一个适用于iOS8的库,并且具有与MGSplitViewController类似的功能.

sim*_*nbs 17

我遇到了同样的问题并找到了解决方法.转到MGSplitViewController.m并找到以下几行-splitViewSizeForOrientation:(第261行):

width = height;
height = fullScreenRect.size.width;
Run Code Online (Sandbox Code Playgroud)

确保它不能在iOS 8上运行,因为iOS 8将正确处理大小.也许是这样的.

if (SYSTEM_VERSION_LESS_THAN(@"8.0") && UIInterfaceOrientationIsLandscape(theOrientation)) {
    width = height;
    height = fullScreenRect.size.width;
}
Run Code Online (Sandbox Code Playgroud)

然后在-reconfigureForMasterInPopover:(在614 行附近)找到以下行:

[_hiddenPopoverController presentPopoverFromRect:CGRectMake(-2000, -2000, 1, 1) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:NO];
Run Code Online (Sandbox Code Playgroud)

并确保它不能在iOS 8上运行.再次,也许这样.

if (SYSTEM_VERSION_LESS_THAN(@"8.0")) {
    [_hiddenPopoverController presentPopoverFromRect:CGRectMake(-2000, -2000, 1, 1) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:NO];
}
Run Code Online (Sandbox Code Playgroud)