iPad iOS 8上的Game Center分享成就或排行榜崩溃

时间:2014-12-08 16:00:10

标签: swift ios8 game-center

大家好我想在我的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

任何帮助将不胜感激,谢谢!

2 个答案:

答案 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

时,访问此属性会创建一个弹出式表示控制器

根据popoverPresentationController

答案 1 :(得分:0)

我正在使用iOS 9.3在iPad Air上进行测试。

我让它在没有崩溃的情况下运行[在上面的帖子中使用我的解决方案],但它没有显示游戏中心弹出窗口或视图控制器

modalPresentationStyle = .Popover

然而,当我设置

时,我确实得到了我的视图控制器并登录弹出窗口
modalPresentationStyle = .Fullscreen