2014-02-11 27 views
1

我已經實現了一個tabbarcontroller與5個選項卡,每個連接到一個視圖。有條件刷新tabBarController視圖

tabBarcontroller被創建,默認視圖分配發生在另一個視圖中。

everythine看起來不錯,但我有一個bug。

選項卡中的每個視圖都有觸發其他視圖的按鈕。這些視圖沒有標籤,因此返回到我使用後退按鈕的標籤視圖。

當我按下後退按鈕時,我不希望從頭開始創建視圖(使用選項卡)。所以我已經把相關代碼放在viewdidload而不是viewwillappear中。 (這個選擇是因爲這個觀點下載從服務器的數據,並且變得耗時把代碼在這一點上在viewWillAppear中)

但是,如果我從當前選項卡返回,我以前曾經感動和看到的標籤。我希望從頭開始加載視圖,因爲此時應該再次下載數據。但由於我使用viewdidload而不是viewwillappear,所以舊視圖不會刷新。

我如何能實現取決於是否我是來自另一個選項卡或即將從視圖與後退按鈕做到這一點

回答

1

一種方式來看這個條件的刷新在視圖控制器的isMovingToParentViewController方法。這將使您能夠檢測您的當前堆棧是否已從導航控制器中彈出。

有一個答案here解釋如何使用它,並鏈接到蘋果的文檔。

正如您從該線程看到的那樣,您還可以使用NSNotificationCenter來執行此操作。

+0

謝謝你做到了:) – silverkid