2014-09-28 72 views
2

我已經設置了我的每個UIViewControllers在他們的viewDidLoad:方法中的屬性titleimageselected-image。這些視圖控制器位於UITabBarController中,根據提供的文檔,如果您設置了這三個屬性,則UITabBarController將自動顯示它們。UITabBarController標籤圖像和標題不會設置,直到我點擊它們

[self setTitle: @"title"]; 
[self.tabBarItem setImage: [UIImage imageNamed:@"image.png"]]; 
[self.tabBarItem setSelectedImage:[UIImage imageNamed:@"image-selected.png"]]; 

但問題是,視圖控制器不實例化,直到用戶點擊在UITabBar相應的標籤,所以直到那一刻,該選項卡沒有按下,無論是圖像或標題所示。

是否有任何clean和OOP的方式來使UITabBarController刷新並從其視圖控制器中提取數據?如果你不得不手動告訴UITabBarController是哪個屬性,那麼有title,imageselected-image屬性有什麼意義呢?

+0

我剛剛實施的最粗略不潔的解決方案有:我的子類的UITabBarController,並使其通過其所有的視圖控制器循環,然後返回到第一個。請幫我找到另一種方式! – tomidelucca 2014-09-28 10:24:26

回答

5

viewDidLoad直到視圖實際需要首次加載時才被調用,在這種情況下,當您切換到ViewController的選項卡時纔會調用該視圖。

嘗試在ViewController的指定初始化工具中設置這些屬性。

+0

輝煌。謝謝。 – tomidelucca 2014-09-28 10:51:00

0

如果您正在使用故事板,則應該使用awakeFromNib來代替。就像這樣:

- (void) awakeFromNib { 
    [self setTitle: @"title"]; 
    [self.tabBarItem setImage: [UIImage imageNamed:@"image.png"]]; 
    [self.tabBarItem setSelectedImage:[UIImage imageNamed:@"image-selected.png"]]; 
} 
相關問題