Facebook 身份验证 iOS 使用 Storyboard
Posted
技术标签:
【中文标题】Facebook 身份验证 iOS 使用 Storyboard【英文标题】:Facebook Authentication iOS using 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。很抱歉它丢失了。
上面的代码没有使用情节提要。您的项目是基于故事板的项目吗?
【参考方案1】:
如果您想使用情节提要,该教程将毫无用处,因为 90% 的教程都是关于设置您的用户界面(不是 Facebook 特定的内容)。如果您想使用故事板执行本教程,请先设置您自己的 UI,然后了解按下登录按钮(和注销)时他们在做什么。
您需要在应用委托中做的唯一事情是:
-
添加应用:openURL:sourceApplication:annotation: 方法
修改 applicationDidBecomeActive:按照他们的建议
在您的应用开始时检查会话状态,以确定您是显示登录视图还是直接进入主视图(尽管您也可以在加载第一个视图时执行此操作)。
您可以放置代码来打开您的 facebook 会话(登录)并在应用程序委托或其他地方响应会话状态的变化。就个人而言,我更喜欢在单独的 FB 管理类中处理所有会话管理,以免将应用程序委托与 Facebook 相关代码混淆。
最好的办法是在没有故事板的情况下完成本教程,以了解他们在做什么,然后将其应用到您自己的应用程序中,和/或阅读this page 以了解 FBSession 对象。
【讨论】:
谢谢乔尔。实际上对我有用的是能够通过他们的故事板ID而不是initwithnibname来引用我的故事板视图控制器。【参考方案2】:我意识到我可以通过故事板 ID 访问我的视图控制器。
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewConroller* myViewController = [sb instantiateViewControllerWithIdentifier:@"MyStoryboardID"];
【讨论】:
以上是关于Facebook 身份验证 iOS 使用 Storyboard的主要内容,如果未能解决你的问题,请参考以下文章
是否可以使用 facebook 服务器端身份验证和 facebook ios sdk
仅使用 Facebook 令牌在 iOS 上发送 Firebase 邀请登录 Firebase 身份验证
无法使用 iOS SDK 和本机 Facebook 应用程序对 Facebook 进行身份验证
如何使用带有 iOS SDK 的 Facebook 身份验证通过 DynamoDB 和 Cognito 存储用户信息