uisplitviewcontroller - iOS8 MGSplitViewController替代

标签 uisplitviewcontroller uipopovercontroller ios8

我在我的应用程序中使用 MGSplitViewController 库。直到 iOS7 都可以正常工作,但是对于 iOS8 来说,它不能按预期工作,原因是iOS8中 UIPopoverController 的行为发生了变化。附件是在iOS8上运行MGSplitView代码的屏幕截图:



显示错误的行为。它应该类似于以下屏幕截图:


我读过某处关于MGSplitViewController库不会针对iOS8修复程序进行更新的消息。有人知道我们是否还有另一个适用于iOS8且与MGSplitViewController类似功能的库。

最佳答案

我遇到了同样的问题,并找到了解决方案。转到MGSplitViewController.m并在-splitViewSizeForOrientation:中找到以下几行(第261行左右):

width = height;
height = fullScreenRect.size.width;

确保它不能在iOS 8上运行,因为iOS 8可以正确处理尺寸。也许是这样。
if (SYSTEM_VERSION_LESS_THAN(@"8.0") && UIInterfaceOrientationIsLandscape(theOrientation)) {
    width = height;
    height = fullScreenRect.size.width;
}

然后在-reconfigureForMasterInPopover:中找到以下行(在614行附近):
[_hiddenPopoverController presentPopoverFromRect:CGRectMake(-2000, -2000, 1, 1) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:NO];

并确保它不能在iOS 8上运行。再次,也许是这样。
if (SYSTEM_VERSION_LESS_THAN(@"8.0")) {
    [_hiddenPopoverController presentPopoverFromRect:CGRectMake(-2000, -2000, 1, 1) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:NO];
}

关于uisplitviewcontroller - iOS8 MGSplitViewController替代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25246365/

相关文章:

objective-c - iPad - 弹出框颜色

ios - 如何更改 Split View Controller 项目的宽度大小(主视图 Controller - 详细 View Controller )?

ios - UIPopoverController 在 iOS 8/Xcode 6 中没有关闭

ios - Storyboard中的 Xcode 6 UIVisualEffectView

iphone - UISplitViewController 模板不能包含 Group'd UITableView

ios - UISplitViewController : how to present master view in the detail view by button event instead of via a swipe gesture

javascript - 与 UIWebview 表单弹出窗口通信?

ios - UIPopoverPresentationControllerDelegate 协议(protocol)的 2 个 adaptivePresentationStyle 方法之间的区别

ios - 如何防止状态栏与 UINavigationController 上设置的 hidesBarsOnSwipe 内容重叠?

xcode - UISearchController 不更新