我有一个以非常简单的方式使用GameCenter的应用程序(只是一个具有所有时间高分的简单排行榜)。有时当我切换到我的应用程序时,我会看到通知说“欢迎回到游戏中心”,但有时这个通知会出现如下图所示:
http://i.imgur.com/KOCFIJo.jpg
有人知道造成这种情况的原因是什么吗?因为我完全不知道。
生成通知横幅的验证码非常标准。
GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
[GKLocalPlayer localPlayer].authenticateHandler = ^(UIViewController *viewController, NSError *error) {
// If there is an error, do not assume local player is not authenticated.
if (localPlayer.isAuthenticated) {
// Enable Game Center Functionality
self.gameCenterAuthenticationComplete = YES;
[self enableGameCenter:YES];
gameCenterButton.enabled=true;
} else {
NSLog(@"game center not logged in");
// User has logged out of Game Center or can not login to Game Center, your app should run
// without GameCenter support or user interface.
self.gameCenterAuthenticationComplete = NO;
[self enableGameCenter:NO];
[self presentViewController:viewController animated:true completion:nil ];
gameCenterButton.enabled=false;
}
};
另外一条信息是,当出现此问题时,我的应用程序处于纵向方向。看起来如果我在横幅显示时将手机旋转90度,它通常会在风景中看起来,但在纵向看起来它看起来都是压扁的。这有助于解释它吗?
答案 0 :(得分:2)
我明白了。我没有实现preferredInterfaceOrientationForPresentation所以我做了
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationPortrait;
}
并且我还确保supportedInterfaceOrientations returend UIInterfaceOrientationMaskPortrait(注意它返回UIInterfaceOrientationMASKPortrait而不仅仅是UIInterfaceOrientationPortrait)。之后一切正常。
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}