【问题标题】:Facebook Authentication iOS using StoryboardFacebook 身份验证 iOS 使用 Storyboard
【发布时间】:2013-09-16 21:27:42
【问题描述】:

有没有使用 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/

【问题讨论】:

  • 无论您使用 XIB 还是 Storyboard,Facebook 代码都保持不变。你能分享你得到的错误吗?使用 Storyboard 时不会调用 initWithNibName,而是调用 initWithCoder。
  • 由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'无法在捆绑包中加载NIB:'NSBundle
  • 你能复制一下试图打开xib文件的代码吗?
  • 您好,我已经编辑了问题并添加了代码 sn-p。很抱歉它丢失了。
  • 上面的代码没有使用情节提要。您的项目是基于故事板的项目吗?

标签: iphone ios objective-c facebook storyboard


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 谢谢乔尔。实际上对我有用的是能够通过他们的故事板ID而不是initwithnibname来引用我的故事板视图控制器。
【解决方案2】:

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

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
        UIViewConroller* myViewController = [sb instantiateViewControllerWithIdentifier:@"MyStoryboardID"];

【讨论】:

    猜你喜欢
    • 2013-09-04
    • 1970-01-01
    • 2018-01-24
    • 2019-05-30
    • 1970-01-01
    • 2013-08-26
    • 2011-08-29
    • 2018-02-24
    • 1970-01-01
    相关资源
    最近更新 更多