Ios7 GKScore ChallengeComposecController,玩家不显示视图

Ios7 GKScore ChallengeComposecController,玩家不显示视图,ios7,game-center,Ios7,Game Center,这是我的密码: GKScore *scoreObj = [[[GKScore alloc] initWithCategory:category] autorelease]; scoreObj.value = playerScore; [scoreObj challengeComposeControllerWithPlayers:playerIDs message:msg

这是我的密码:

GKScore *scoreObj = [[[GKScore alloc] initWithCategory:category] autorelease];
scoreObj.value = playerScore;

[scoreObj 
    challengeComposeControllerWithPlayers:playerIDs 
                                  message:msg
                        completionHandler:^(UIViewController *composeController,
                                            BOOL didIssueChallenge, 
                                            NSArray *sentPlayerIDs) {
                // I don't really care what you do
            }];
当我运行代码时,我没有得到任何覆盖,日志中也没有错误消息


当前,
playerIDs
是一个空的NSMutableArray。我不知道这是否相关,但我不想预先填充一个列表-这就是这个原生UI为我提供的功能,对吗
mgs
是一个空字符串。

首先在iOS 7中
initWithCategory:
不推荐使用。改用
initWithLeaderboardIdentifier:
。正如文件所说:

提供一个带有预先选择的玩家标识符和预先格式化的、玩家可编辑消息的挑战组合视图控制器

因此,保存指向此视图控制器的指针,从当前视图控制器中显示它,并从完成处理程序中取消它

假设您在当前viewController的实现中,请执行以下操作:

GKScore *scoreObj = [[[GKScore alloc] initWithLeaderboardIdentifier:category] autorelease];
scoreObj.value = playerScore;

UIViewController *vc = [scoreObj  challengeComposeControllerWithPlayers:playerIDs 
                                  message:msg
                        completionHandler:^(UIViewController *composeController,
                                            BOOL didIssueChallenge, 
                                            NSArray *sentPlayerIDs) {
   [composeController.presentingViewController dismissViewControllerAnimated: YES completion: nil];
                // I don't really care what you do
            }];
[self presentViewController: vc animated: YES completion: nil];
这应按预期在viewController中显示