在 Storyboard 中执行 FBLoginView 后如何转换到另一个视图?
Posted
技术标签:
【中文标题】在 Storyboard 中执行 FBLoginView 后如何转换到另一个视图?【英文标题】:How to transition to another view after FBLoginView is executed in Storyboard? 【发布时间】:2013-10-11 07:30:50 【问题描述】:我在我的应用中使用 Facebook SDK 3.8。
我正在使用 FBLoginView 以图形方式登录 Facebook 用户。
我的应用中有一些视图:
ViewController(应用启动时的主视图) LoginViewController(带有 FBLoginView 的视图) StoryViewController(只允许经过身份验证的 Facebook 用户访问的视图)在 ViewController 上,用户单击 View Story 按钮,如果用户尚未使用 Facebook 登录,我会使用 segue 将用户引导至 LoginViewController。
在 LoginViewController 上,用户点击 Log in with Facebook,然后应用提示用户输入我设置的一些权限,用户点击 Ok 后,它只是返回到 LoginViewController。
我的问题是: 一旦用户接受了权限并以 Storyboard 模式登录 Facebook,如何转换到 StoryViewController?
我的 LoginViewController.m 中有方法(如下),但它从未被调用。 - (void)loginViewShowingLoggedInUser:(FBLoginView *)loginView
我做错了什么?
编辑:
我的 AppDelegate.m 中有这个
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation
// attempt to extract a token from the url
return [FBSession.activeSession handleOpenURL:url];
//return [FBAppCall handleOpenURL:url sourceApplication:sourceApplication];
我的 ViewController.m 中有这个
- (void)loginViewShowingLoggedInUser:(FBLoginView *)loginView
NSLog(@"To get FB user profile...");
但从调试器中,我没有收到“获取 FB 用户配置文件...”的消息
【问题讨论】:
【参考方案1】://你是在 AppDelegate 中实现这个方法吗?如果不执行。
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation
// FBSample logic
// We need to handle URLs by passing them to FBSession in order for SSO authentication
// to work.
return [FBSession.activeSession handleOpenURL:url];
//你可以在fbloginview的这个委托方法中推送你的视图控制器,即StoryViewController
- (void)loginViewShowingLoggedInUser:(FBLoginView *)loginView
//you can navigate to your view controller
【讨论】:
以上是关于在 Storyboard 中执行 FBLoginView 后如何转换到另一个视图?的主要内容,如果未能解决你的问题,请参考以下文章
想要放松以查看控制器但退出按钮不会突出显示,在 Storyboard 中连接