在 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(应用启动时的主视图) Lo​​ginViewController(带有 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传值方式

想要放松以查看控制器但退出按钮不会突出显示,在 Storyboard 中连接

UIPageControl 的 IBOutlet 或事件不在 StoryBoard 中

IOS多语言切换2-storyboard

在 StoryBoard 中查找 UIView

以编程方式定义和执行 segue