Проблемы с сватовством в iOS с геймкитом и игровым центром - PullRequest
1 голос
/ 22 сентября 2011

В данный момент я пытаюсь добавить сетевой многопользовательский режим в свою игру для iOS (в которой используется UIKit), используя gameKit / GameCenter для организации матчей. Я пытаюсь представить интерфейс сватов игрового центра, но с переменным успехом. У меня есть два контроллера представления (с соответствующими файлами .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];
}

Любая помощь будет принята с благодарностью. Кроме того, я не уверен, как мне поступить с возвратом в главное меню, если пользователь нажимает «Отмена» (хотя это может стать самоочевидным, как только я получу эту работу, я просто подумал, что упомяну это в случае отсутствия знание с моей стороны делает очевидным, что я говорю обо всем этом неправильно).

...