1

我是 iOS 开发的新手,我已经开始使用 ARC 实现 Facebook SDK。如教程所示,我在 AppDelegate 中添加了 Facebook 实例。我需要应用程序登录 Facebook,而不是在应用程序 didFinishLoading 时而是在按下按钮时。

我在我的视图控制器中创建了一个按钮和一个 IBAction,我正在使用 IBAction 从 AppDelegate 调用一个函数。AppDelegate 中的函数进行登录,然后,当一切正常时,将我返回到相同的视图。我需要实现以下内容:

  1. 当我登录函数 fbDidLogin 时,我希望我的应用程序转到另一个视图。我如何从我的 AppDelegate 中做到这一点?

  2. 这个函数在 AppDelegate 中,因为 facebook 实例在那里。关于应用程序的架构是否有更好的解决方案?

谢谢!

4

2 回答 2

1

尝试在视图控制器中添加 Facebook 代码并将 Facebook 对象作为属性。在 Appdelegate 中将此视图控制器添加到您的窗口,并在从 facebook 获取身份验证时访问视图控制器内的 facebook 对象

[viewcontroller.facebook handleOpenURL:url];

fbDidLogin 将在您的视图控制器内,因此您可以推送另一个视图

- (void)fbDidLogin {
            [self.navigationController pushViewController:<#(UIViewController *)#> animated:<#(BOOL)#>]
}
于 2012-05-16T13:40:36.167 回答
1

正如 Mahmoud 上面指出的那样,您可以使用

- (void)fbDidLogin {
        [self.navigationController pushViewController:<#(UIViewController *)#> animated:<#(BOOL)#>]
  }

但根据我的经验,最好将您的 facebook 对象保持为单例(阅读Singleton),就好像您需要在程序中的其他地方访问此对象一样,您需要再次访问您的 appdelegate 对象,这将导致非常混乱的编码

另一方面,将其设置为单例可以让您更好地控制该对象,并且您实际上只需要一个 facebook 对象实例

于 2012-05-16T14:09:32.543 回答