目前我正在尝试使用gameKit / GameCenter将在线多人游戏添加到我的iOS游戏(使用UIKit)进行配对。我正试图展示游戏中心的媒人界面,但取得了不同程度的成功。我有两个视图控制器(带有相应的.xib文件),mainMenuViewController
和onlineViewController
,以及一个名为GCHelper.h
的文件。
在CGHelper
我有这个:
- (void)findMatchWithMinPlayers:(int)minPlayers
maxPlayers:(int)maxPlayers
viewController:(UIViewController *)viewController
delegate:(id<GCHelperDelegate>)theDelegate
{
if (!gameCenterAvailable) return;
self.presentingViewController = viewController;
delegate = theDelegate;
[presentingViewController dismissModalViewControllerAnimated:NO];
GKMatchRequest *request = [[GKMatchRequest alloc] init];
request.minPlayers = minPlayers;
request.maxPlayers = maxPlayers;
GKMatchmakerViewController *mmvc = [[GKMatchmakerViewController alloc] initWithMatchRequest:request];
mmvc.matchmakerDelegate = self;
[presentingViewController presentModalViewController:mmvc animated:YES];
}
我在视图中使用此功能来显示匹配界面。起初我在mainMenuViewController
尝试了它,这是我的第一个使用它的视图控制器:
[[GCHelper sharedInstance] findMatchWithMinPlayers:2 maxPlayers:2 viewController:self delegate:self];
这很好但是那不是我想要的地方,所以我尝试了onlineViewController
完全相同的事情,没有任何反应,没有错误,只是onlineViewController.view
的空白视图回顾我。我对此非常陌生,所以我想知道这是否取决于我如何处理视图,这是我用来从mainMenu
切换到另一个视图的代码:
-(IBAction)showOnlineView
{
OnlineViewController *onlineViewController = [[OnlineViewController alloc] initWithNibName:@"OnlineViewController" bundle:nil];
UIView *currentView = self.view;
UIView *theWindow = [currentView superview];
[currentView removeFromSuperview];
[theWindow addSubview:onlineViewController.view];
}
非常感谢任何帮助。另外,如果用户按下取消,我不知道如何处理返回主菜单(尽管一旦我开始工作,这可能会变得很明显,我只是想我会提到它以防这种情况不足对我而言,我的知识很明显,我整个事情都是错误的。)