我这样给排行榜打电话:
-(void)viewscores:(SPEvent*)event
{
GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] init];
if (leaderboardController != nil) {
leaderboardController.leaderboardDelegate = self;
UIWindow* window = [UIApplication sharedApplication].keyWindow;
[window addSubview: self.rootViewController];
[self presentModalViewController: leaderboardController animated: YES];
}
} 当我点击引导板按钮时,我收到一个错误:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[UIViewController presentModalViewController:animated:]: unrecognized selector sent to class 0x3e2fc7f8'这是正常的吗?
发布于 2012-05-03 06:58:38
您可能应该在viewController中调用该函数。在我的一个应用中,代码看起来像这样:
-(IBAction)showLeaderBoard {
GKLeaderboardViewController *leaderBoardCont = [[GKLeaderboardViewController alloc] init];
if (leaderBoardCont) {
leaderBoardCont.category=@"1S";
leaderBoardCont.timeScope=GKLeaderboardTimeScopeWeek;
leaderBoardCont.leaderboardDelegate=self;
[self presentModalViewController:leaderBoardCont animated:YES];
}}
然后,您还应该实现委托方法:
-(void) leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController {
[self dismissModalViewControllerAnimated:YES];
viewController = nil;
}这里的1S是您在iTunes连接中创建的排行板的标识符。希望这能有所帮助。
编辑:既然您仍然有问题,请查看这些教程。它们涵盖了排行榜和成就的所有内容。
发布于 2015-12-11 23:53:51
您正在将presentModalViewController消息发送到无法识别它的对象。因此,您在"Game.m“文件中编写的类不是从UIViewController继承的。不知道您使用的是什么框架,但是您必须初始化一个UIViewController实例才能显示GameCenter视图。
https://stackoverflow.com/questions/10422805
复制相似问题