2012-11-18 85 views
0

我知道這是一個初學者的問題,但我只是找不到解決方案。 我有一個故事板的應用程序。這是一個選項卡式視圖應用程序,每個選項卡都會導向導航視圖控制器,而不是根視圖控制器。導航視圖控制器中的 我有一個登錄按鈕。按下它發送一條消息給應用程序委託來處理與Facebook的會話。 我想要在facebook會話打開後設置要註銷的按鈕的標題,因爲多數民衆贊成它將做什麼,如果我再按一次。 這是所有可視化編程,並沒有硬編碼如此多的代碼丟失。 現在我知道只有一個應用程序委託實例,所以它很容易從視圖中訪問它,但是如何從應用程序委託獲取視圖的活動會話? 我試圖把它在viewDidLoad方法,但顯然從Facebook的API回調不重裝視圖(以及它不應該,不再次無償工作系統)影響從AppDelegate視圖

任何想法如何獲取應用程序委託將消息發送到視圖的主動會話?

+0

您可以在將消息發送給應用程序委託之前切換按鈕標題嗎? (也就是說,當按鈕被選中時,你知道它將改變它的下一個水龍頭的功能。) –

+0

不,因爲我不知道在應用程序委託中登錄之前是否成功。我在appdelegate中擁有代表國旗的財產。 true =我有會話,該按鈕應該是註銷或假我沒有,我需要登錄。 –

回答

1

這裏有幾個方法,你可以這樣做:(?Facebook的庫可能已經發布通知)

  1. 你可以使用你的程序委託發佈通知,當用戶登錄/退出,並且您的視圖控制器可以註冊此通知,以便他們可以在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
+0

thx,通知做到了。 –