我正在使用sdk 5和Storyboard开发iPad应用程序。我正在关注[OAuth2]教程和示例。 1
我已将代码移植到Singleton。每次调用initSesion时都创建一个新 View :
viewController = [[GTMOAuth2ViewControllerTouch alloc] initWithScope:scope
clientID:kMyClientID
clientSecret:kMyClientSecret
keychainItemName:kKeychainItemName
delegate:self
finishedSelector:@selector(viewController:finishedWithAuth:error:)];
//viewController.keychainItemAccessibility = kSecAttrAccessibleAlways;
NSDictionary *params = [NSDictionary dictionaryWithObject:@"en"
forKey:@"hl"];
//viewController.signIn.additionalAuthorizationParameters = params;
NSString *html = @"<html><body bgcolor=silver><div align=center>Loading sign-in page...</div></body></html>";
viewController.initialHTMLString = html;
[[self navigationController] pushViewController:viewController
animated:YES];
但是,当另一个Viewcontroller调用simgleton时,不会显示推入的 View 。
通常,导航器 Controller 使用堆栈来显示差异 View ,因此,如果我以正确的方式使用该功能,则必须启动GTMOAuth2ViewControllerTouch.view才能使用OAuth2登录,该情况在示例中发生。但是什么也没发生。
这是怎么回事?提前致谢。
最佳答案
检查您是否有导航 Controller ,可能为零。使用调试模式或放置NSLog:
if(![self navigationController]){ NSLog(@"I´m Nil"); } else { ... }
如果尚未创建navigationController,请尝试使用应用的单例来获取它,例如:
[[[[[UIApplication sharedApplication] delegate] window] rootViewController] presentModalViewController:viewController animated:YES];
关于ios5 - pushViewController在iOS 5上无法启动GTMOAuth2ViewControllerTouch,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11223682/