[英]How do you receive a game center invite when GKMatchmakerViewController is open?
[英]Displaying Game Center GKMatchmakerViewController dismisses other view
尝试在游戏视图上显示GKMatchmakerViewController时遇到问题。
通常,我会以编程方式通过自动匹配2个对手来创建多人游戏,效果很好。
但是,当我尝试显示标准的“游戏中心对接会”视图时,它将关闭我的游戏视图,并将我推回菜单。
菜单视图->游戏视图。
我认为问题可能是我的菜单视图充当了我的主视图,而显示“游戏中心”视图时却删除了所有其他视图(因为此时只能显示一个视图控制器)。
我的视图层次结构设置错误吗? 在显示“游戏中心”视图时,应该如何做才能使我的“游戏视图”不被关闭?
GameviewController具有当我想显示Game Center配对控制器时调用的方法
- (void)presentCustomVSBattle {
ourRandom = arc4random();
[self setGameState:kGameStateWaitingForMatch];
AppDelegate * delegate = (AppDelegate *) [UIApplication sharedApplication].delegate;
[[GCHelper sharedInstance] findCustomMatchWithMinPlayers:2 maxPlayers:2 viewController:delegate.viewController delegate:self];
}
//在GCHelper.m中调用此方法
- (void)findCustomMatchWithMinPlayers:(int)minPlayers maxPlayers:(int)maxPlayers viewController:(UIViewController *)viewController delegate:(id<GCHelperDelegate>)theDelegate {
if (!gameCenterAvailable) return;
matchStarted = NO;
self.match = nil;
self.presentingViewController = viewController;
delegate = theDelegate;
if (pendingInvite != nil) {
[presentingViewController dismissModalViewControllerAnimated:NO];
GKMatchmakerViewController *mmvc = [[[GKMatchmakerViewController alloc] initWithInvite:pendingInvite] autorelease];
mmvc.matchmakerDelegate = self;
[presentingViewController presentViewController:mmvc animated:YES completion:nil];
self.pendingInvite = nil;
self.pendingPlayersToInvite = nil;
}
else {
[presentingViewController dismissModalViewControllerAnimated:NO];
GKMatchRequest *request = [[[GKMatchRequest alloc] init] autorelease];
request.minPlayers = minPlayers;
request.maxPlayers = maxPlayers;
request.playersToInvite = pendingPlayersToInvite;
GKMatchmakerViewController *mmvc = [[[GKMatchmakerViewController alloc] initWithMatchRequest:request] autorelease];
mmvc.matchmakerDelegate = self;
[presentingViewController presentViewController:mmvc animated:YES completion:nil];
self.pendingInvite = nil;
self.pendingPlayersToInvite = nil;
}
}
在您的情况下,dismissView Controller调用看起来不必要,请尝试摆脱它们:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.