1

我正在嘗試更改標籤欄項目上的字體顏色。我使用的代碼從這個帖子:self.tabBarItem respondsToSelector始終返回no

change tabbar text color,iPhone

我的代碼如下:

if ([self.tabBarItem respondsToSelector:@selector(setTitleTextAttributes:)]) { 
    NSLog(@"yes"); 
    [self.tabBarItem setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: 
              darkGreen, UITextAttributeTextColor, 
              nil] forState:UIControlStateNormal]; 
} 
else { 
    NSLog(@"no"); 
} 

respondsToSelector始終沒有返回,和我被困在如何解決它。該代碼塊位於viewDidLoad中,而該類是UITabBarController的子類。

任何想法?

+0

您已確認self.tabBarItem是非零? – bdash

回答

0

這種方法setTitleTextAttributes:不存在的話,該方法的正確的簽名是setTitleTextAttributes: forState:

if ([self.tabBarItem respondsToSelector:@selector(setTitleTextAttributes: forState:)]) { 
    NSLog(@"yes"); 
    [self.tabBarItem setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: 
              darkGreen, UITextAttributeTextColor, 
              nil] forState:UIControlStateNormal]; 
} 
else { 
    NSLog(@"no"); 
} 
+0

啊啊,我有多傻。我不敢相信我忽略了這一點!謝謝。我改變了它,它返回是,但不更新文本顏色。你會知道從這裏去哪裏? – AUSTOOO

+0

嘗試用'[UITabBarItem appearance]' –

+0

替換'self.tabBarItem'感謝您的快速響應。我取而代之,沒有運氣。它是故事板中的東西嗎? – AUSTOOO