我正在尝试将游戏中心集成到我的应用中,但是我一直在收到错误。我将以下代码输入到app delegate.m中,这就是我得到的:
- (void)authenticateLocalPlayer {
GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
localPlayer.authenticateHandler = ^(UIViewController *viewController, NSError *error){
if (viewController != nil) {
[self presentViewController:viewController animated:YES completion:nil];
}
else{
if ([GKLocalPlayer localPlayer].authenticated) {
_gameCenterManager = YES;
// Get the default leaderboard identifier.
[[GKLocalPlayer localPlayer] loadDefaultLeaderboardIdentifierWithCompletionHandler:^(NSString *leaderboardIdentifier, NSError *error) {
if (error != nil) {
NSLog(@"%@", [error localizedDescription]);
}
else{
leaderboardIdentifier = leaderboardIdentifier;
}
}];
}
else{
_gameCenterManager = NO;
}
}
};
}
我使用这段代码,但是这部分代码出错:
[self presentViewController:viewController animated:YES completion:nil];
Xcode告诉我找不到这个实例方法。根据我的理解,这是UIView的实例方法?反正我是否可以在app委托类中使用此方法?
答案 0 :(得分:1)
除了@ Raptor的答案外,请尝试以下操作。
[self.window.rootViewController presentViewController:viewController animated:YES completion:nil];
答案 1 :(得分:-1)
您不应使用[self presentViewController:viewController animated:YES completion:nil];
在App Delegate中显示视图控制器,因为App Delegate不响应presentViewController:animated:
您可以使用:
self.window.rootViewController = viewController;
[self.window makeKeyAndVisible];