使用游戏套件和游戏中心在iOS中进行配对会遇到麻烦

时间:2011-09-22 00:00:30

标签: objective-c ios xcode gamekit game-center

目前我正在尝试使用gameKit / GameCenter将在线多人游戏添加到我的iOS游戏(使用UIKit)进行配对。我正试图展示游戏中心的媒人界面,但取得了不同程度的成功。我有两个视图控制器(带有相应的.xib文件),mainMenuViewControlleronlineViewController,以及一个名为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];
}

非常感谢任何帮助。另外,如果用户按下取消,我不知道如何处理返回主菜单(尽管一旦我开始工作,这可能会变得很明显,我只是想我会提到它以防这种情况不足对我而言,我的知识很明显,我整个事情都是错误的。)

0 个答案:

没有答案