Bar*_*rtu 0 iphone cocoa-touch ios
我正在为我的应用程序(基本SDK:iOS5)使用Facebook SDK 3.0并使用Scrumptious应用程序(示例应用程序)作为教程.如果Facebook没有开放会话,则会以模态方式呈现登录视图控制器.但它没有以模态呈现.这是代码;
- (void)showLoginView {
UIViewController *topViewController = [self.navigationController topViewController]; // not nil, RootViewController kind of class
UIViewController *modalViewController = [topViewController modalViewController]; // nil since not modalviewcontroller exists
if (![modalViewController isKindOfClass:[FacebookLoginViewController class]]) {
FacebookLoginViewController *loginViewController = [[FacebookLoginViewController alloc] initWithNibName:@"FacebookLoginViewController" bundle:nil]; // allocated, no problem
[topViewController presentModalViewController:loginViewController animated:NO]; // not working????
} else {
FacebookLoginViewController* loginViewController = (FacebookLoginViewController*)modalViewController;
[loginViewController loginFailed];
}
}
Run Code Online (Sandbox Code Playgroud)
细节;
application:didFinishLaunchingWithOptions:
分配navigationController后调用和调用的RootViewController
该navigationController的调用viewDidLoad
方法之前showLoginView
叫showLoginView
,topViewController
是不是零(这是什么是应该是:RootViewController
)loginViewController
调用(FacebookLoginViewController
)的init
方法,但不是它的viewDidLoad
方法)日志输出:
2013-03-21 20:01:28.729 RootViewController:viewDidLoad
2013-03-21 20:01:28.735 FacebookLoginViewController:已分配
尝试强制您的UI代码在主线程上运行:
dispatch_async(dispatch_get_main_queue(), ^{
[topViewController presentModalViewController:loginViewController animated:NO];
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2008 次 |
最近记录: |