8

在我的選項卡中,我有四個viewcontrollers,其中一個可能會影響另一個視圖,所以我可能需要在viewcontroller中顯示一些元素時重新加載它們。通常我會通過實現viewWillAppear來解決這個問題,但是當我在標籤之間切換時,viewWillAppear似乎不會被調用。我該如何解決這個問題,或者我應該怎麼做?viewWill出現在tabbar的視圖控制器

更新:作爲一個PS我要補充一點,這是一個navigationcontroller層次結構中的tabbarcontroller

乾杯

+0

我不知道這是同樣的問題...但可能值得搶劫 http://stackoverflow.com/questions/131062/iphone-viewwillappear-not-firing/8157562#8157562 – Sean 2011-11-16 19:40:11

回答

-1

viewWillAppear的觀點出現時,才應使用,而不能用於更新它。

改爲在viewController的視圖上使用setNeedsDisplay

+0

我會在哪裏調用setNeedsDisplay?問題是,我需要當用戶從使用TabBar – niklassaers 2010-07-17 15:58:39

+1

哦,選擇一個新的視圖 - 控制了鉤,索裏,我在這裏混了的東西一點點。 我不知道爲什麼viewWillAppear中是沒有得到所謂的,但我知道變通的辦法: 做一些反對一個tabBarController代表,它會在發送的消息,一個新的視圖選擇,並調用視圖將從那裏出現。 – tadejsv 2010-07-17 18:23:14

+0

聽起來像一個有趣的想法,我給明天一個嘗試:-) – niklassaers 2010-07-17 19:35:29

7

您可以使用的TabBar控制器委託就像一個魅力

 
-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController 
{ 
    [viewController viewWillAppear:YES]; 

} 
1

而如果你發現這個問題,因爲你想更新的東西在UITabBarController本身,而不是一個UITabBarControllerUIViewControllers,如OP的問題。例如,隱藏或顯示自定義UITabBarButton。在我的UITabBarController類的Swift 3.0重寫setNeedsStatusBarAppearanceUpdate爲我工作。

override func setNeedsStatusBarAppearanceUpdate() { 

}