大家好我想在我的iOS8应用上实现Game Center,并在iPad上遇到崩溃。我已经设置了成就和排行榜,并且可以成功点击iPhone上的蓝色分享按钮但是当我在iPad上按分享时,GKGameCenterViewController崩溃并给我以下报告:
特定应用信息: ***由于未捕获的异常终止应用程序' NSGenericException',原因:' UIPopoverPresentationController (小于_UIAlertControllerActionSheetRegularPresentationController: 0x7b1480a0>)应该有一个非零的sourceView或barButtonItem集 在演示发生之前。'终止未捕获的异常 类型NSException abort()名为CoreSimulator 110.4 - 设备:iPad Retina - Runtime:iOS 8.1(12B411) - DeviceType:iPad Retina
任何帮助将不胜感激,谢谢!
答案 0 :(得分:0)
我遇到了同样的崩溃。当我以模态方式呈现GKGameCenterViewController时,重要的是我使用以下顺序的代码提供sourceView:
gameCenterVC.modalPresentationStyle = .Popover
gameCenterVC.popoverPresentationController?.sourceView = view!
gameCenterVC.popoverPresentationController?.sourceRect = view!.frame
presentViewController(gameCenterVC, animated: true, completion: {})
您的错误读取
“原因:'UIPopoverPresentationController [...]”
表示你的modalPresentationStyle = .Popover。
在这种情况下,您需要设置源视图或按钮栏,就像错误的其余部分所示。
实例popoverPresentationController in non-nil,因为......
如果您创建了视图控制器但尚未显示它,则当modalPresentationStyle属性中的值为UIModalPresentationPopover
时,访问此属性会创建一个弹出式表示控制器
答案 1 :(得分:0)
我正在使用iOS 9.3在iPad Air上进行测试。
我让它在没有崩溃的情况下运行[在上面的帖子中使用我的解决方案],但它没有显示游戏中心弹出窗口或视图控制器
modalPresentationStyle = .Popover
然而,当我设置
时,我确实得到了我的视图控制器并登录弹出窗口modalPresentationStyle = .Fullscreen