0

有没有使用 Storyboard 而不是 xib 文件来实现 Facebook 身份验证的好方法?facebook 开发者网站上的教程似乎只是使用 xib 文件。

现在我的代码在 initWithNibName 调用时崩溃,因为我当前的项目只使用 Storyboard。

谢谢!

代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.

    self.mainViewController = [[MyViewController alloc]
                               initWithNibName:@"MyViewController" bundle:nil];

    self.navController = [[UINavigationController alloc]
                          initWithRootViewController:self.mainViewController];
    self.window.rootViewController = self.navController;
    [self.window makeKeyAndVisible];

我从这个网站得到这个代码: https ://developers.facebook.com/docs/ios/ios-sdk-tutorial/authenticate/

4

2 回答 2

2

如果您想使用故事板,那么该教程是无用的,因为 90% 的教程都是关于设置您的用户界面(不是 Facebook 特定的东西)。如果您想使用故事板执行本教程,请先设置您自己的 UI,然后了解按下登录按钮(和注销)时他们在做什么。

您需要在应用程序委托中做的唯一事情是:

  1. 添加 application:openURL:sourceApplication:annotation: 方法
  2. 修改 applicationDidBecomeActive: 按照他们的建议
  3. 当您的应用程序开始时检查会话状态以确定您是显示登录视图还是直接进入主视图(尽管您也可以在加载第一个视图时执行此操作)。

您可以放置​​代码来打开您的 facebook 会话(登录)并在应用程序委托或其他地方响应会话状态的变化。就个人而言,我更喜欢在单独的 FB 管理类中处理所有会话管理,以免将应用程序委托与 Facebook 相关代码混淆。

您最好的选择是在没有故事板的情况下完成本教程,以了解他们在做什么,然后将其应用到您自己的应用程序中,和/或阅读此页面以了解 FBSession 对象。

于 2013-09-17T03:33:05.813 回答
0

我意识到我可以通过故事板 ID 访问我的视图控制器。

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
        UIViewConroller* myViewController = [sb instantiateViewControllerWithIdentifier:@"MyStoryboardID"];
于 2013-09-17T14:14:41.707 回答