Facebook iOS SDK - 跳转到另一个视图
Posted
技术标签:
【中文标题】Facebook iOS SDK - 跳转到另一个视图【英文标题】:Facebook iOS SDK - jumping to another view 【发布时间】:2012-05-16 12:22:46 【问题描述】:我是 ios 开发的新手,我已经开始使用 ARC 实现 Facebook SDK。如教程所示,我在 AppDelegate 中添加了 Facebook 实例。我需要应用程序登录 Facebook,而不是在应用程序 didFinishLoading 时,而是在按下按钮时。
我在我的视图控制器中创建了一个按钮和一个 IBAction,我正在使用 IBAction 从 AppDelegate 调用一个函数。 AppDelegate 中的函数进行登录,然后,当一切正常时,将我返回到相同的视图。我需要实现以下内容:
当我登录时,函数 fbDidLogin 被调用,我希望我的应用程序转到另一个视图。如何从我的 AppDelegate 执行此操作?
这个函数在 AppDelegate 中,因为 facebook 实例在那里。关于应用程序的架构有更好的解决方案吗?
谢谢!
【问题讨论】:
【参考方案1】:正如 Mahmoud 上面指出的那样,您可以使用
- (void)fbDidLogin
[self.navigationController pushViewController:<#(UIViewController *)#> animated:<#(BOOL)#>]
但根据我的经验,最好将您的 facebook 对象保持为单例(阅读 Singleton),就好像您需要在程序中的其他地方访问此对象一样,您需要再次访问您的 appdelegate 对象,这会造成非常混乱编码
另一方面,将其设置为单例可以让您更好地控制该对象,并且您实际上只需要一个 facebook 对象实例
【讨论】:
我想我会坚持使用单例 - 听起来是个好主意。【参考方案2】:尝试在视图控制器中添加 Facebook 代码并将 Facebook 对象作为属性。 在 Appdelegate 中将此视图控制器添加到您的窗口,并在从 facebook 获取身份验证时访问视图控制器内的 facebook 对象
[viewcontroller.facebook handleOpenURL:url];
fbDidLogin 将在您的视图控制器中,因此您可以推送另一个视图
- (void)fbDidLogin
[self.navigationController pushViewController:<#(UIViewController *)#> animated:<#(BOOL)#>]
【讨论】:
以上是关于Facebook iOS SDK - 跳转到另一个视图的主要内容,如果未能解决你的问题,请参考以下文章