0

我知道这是一个初学者的问题,但我找不到解决方案。我有一个带有故事板的应用程序。那是一个选项卡式视图应用程序,每个选项卡都指向一个导航视图控制器,而不是一个根视图控制器。在导航视图控制器中,我有一个登录按钮。按下它会向应用程序代表发送一条消息,以处理与 Facebook 的会话。我想在与 facebook 的会话打开后,将按钮的标题设置为注销,因为如果我再次按下它,这就是它要做的事情。这一切都是视觉编程的,没有硬编码,所以很多代码都丢失了。现在我知道只有一个应用程序委托实例,因此很容易从视图中访问它,但是我如何从应用程序委托到视图的活动会话?我尝试将它放在 viewDidLoad 方法中,但显然来自 Facebook API 的回调不会重新加载视图(它也不应该重新加载,因为系统不会再次工作)

任何想法如何让应用程序代表向视图的活动会话发送消息?

4

1 回答 1

1

这里有几种方法可以做到这一点:

  1. 您可以使用 get your app delegate 在用户登录/注销时发布通知(Facebook 库可能已经发布通知?),并且您的视图控制器可以注册此通知,以便他们可以在 Facebook 会话时更改其状态改变状态。你还需要对你的viewDidLoad方法做一些事情,这样如果用户有一个来自先前登录的会话,控制器就会让自己进入正确的初始状态。查看https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/Notifications/Introduction/introNotifications.html#//apple_ref/doc/uid/10000043i了解有关通知编程的更多信息。
  2. 您可以在视图控制器中实现代码,viewWillAppear:animated以便在用户登录后显示视图时,控制器会查询应用程序委托以确定您的会话状态。我怀疑这是您通过将代码放入尝试做的事情viewDidLoad,但是视图已经加载,因此登录后不会调用此代码。viewWillAppear:animated在视图出现之前被调用。
于 2012-11-19T00:35:19.790 回答