***WORKS ONLY ON iOS 6 DEVICES ***
Fix new login method:
BOOL isViewOnScreen; //yes when login is on screen
-
(void)login
{
GKLocalPlayer* localPlayer = [GKLocalPlayer localPlayer];
if (localPlayer.isAuthenticated) {
isViewOnScreen=NO;
return;
}
NSLog(@"Game Center login ....");
localPlayer.authenticateHandler =
^(UIViewController *viewController,
NSError *error) {
if (localPlayer.authenticated) {
isAuthenticated = YES;
[self retrieveScoresFromDevice];
[self retrieveAchievementsFromDevice];
} else if(viewController) {
NSLog(@"Game Center shows login ....");
isViewOnScreen=YES;
[self presentViewController:viewController];
} else {
NSLog(@"Game Center error or canceled login ....");
//User canceled Login view
isAuthenticated = NO;
isViewOnScreen=NO;
}
};
}
pragma mark UIViewController stuff
-(UIViewController*) getRootViewController {
return [UIApplication
sharedApplication].keyWindow.rootViewController;
}
-(void)presentViewController:(UIViewController_)vc {
UIViewController_ rootVC = [self getRootViewController];
[rootVC presentViewController:vc animated:YES
completion:nil];
}
***WORKS ONLY ON iOS 6 DEVICES ***
Fix new login method:
BOOL isViewOnScreen; //yes when login is on screen
(void)login
{
GKLocalPlayer* localPlayer = [GKLocalPlayer localPlayer];
if (localPlayer.isAuthenticated) {
isViewOnScreen=NO;
return;
}
NSLog(@"Game Center login ....");
localPlayer.authenticateHandler =
^(UIViewController *viewController,
NSError *error) {
};
}
pragma mark UIViewController stuff
-(UIViewController*) getRootViewController {
return [UIApplication
sharedApplication].keyWindow.rootViewController;
}
-(void)presentViewController:(UIViewController_)vc {
UIViewController_ rootVC = [self getRootViewController];
[rootVC presentViewController:vc animated:YES
completion:nil];
}