影响AppDelegate的视图

时间:2012-11-18 23:28:22

标签: ios view storyboard appdelegate

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

任何想法如何让应用委托代表发送信息到视图的活动会话?

1 个答案:

答案 0 :(得分:1)

您可以通过以下几种方式执行此操作:

  1. 您可以使用获取您的应用委托来在用户登录/注销时发布通知(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