2013-09-26 26 views
0

我有一個我試圖修改的UITabBarController。現在,選定的選項卡圖標圖像默認爲灰色。我知道你不能以編程方式改變這些UNselected圖標圖像的色調。蘋果說,色彩是由png文件本身的實際色調控制的。所以如果你想要一個白色或綠色的圖標圖像,那麼你必須使用一個PNG顯示圖像爲白色或綠色等。之後,你必須使用UIImageRenderingModeAlwaysOriginal AND initWithTitle:image:selectedImage:我在我的FirstViewController.m中使用此代碼和我把它放在 - (void)viewDidLoad中。但是,我得到一個解析問題:預期的標識符和它指向nil後的括號。有人看到這個代碼的問題?UITabBarController unselected icon image tint

// 
// FirstViewController.m 
// tabmock5 
// 
// Created by USER on 9/26/13. 
// Copyright (c) 2013 USER. All rights reserved. 
// 

#import "FirstViewController.h" 

@interface FirstViewController() 

@end 

@implementation FirstViewController 

- (void)viewDidLoad 
{ 
[[UIImage imageNamed:@"white_stats.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 

[self.tabBarItem initWithTitle:[nil]image:[UIImage imageNamed:@"white_stats.png"]selectedImage:[UIImage imageNamed:@"white_stats.png"]]; 

[super viewDidLoad]; 
// Do any additional setup after loading the view, typically from a nib. 
} 

回答

3
[[UIImage imageNamed:@"white_stats.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 

這不是保存圖像的任何地方。將其更改爲:

UIImage *myImage = [[UIImage imageNamed:@"white_stats.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 

這:

[self.tabBarItem initWithTitle:[nil]image:[UIImage imageNamed:@"white_stats.png"]selectedImage:[UIImage imageNamed:@"white_stats.png"]]; 

nil不是一個對象(它不會在方括號中去)。更改爲:

[self.tabBarItem initWithTitle:nil image:myImage selectedImage:[UIImage imageNamed:@"white_stats.png"]]; 

另外,也可以在技術上做到這一點的一條線:

[self.tabBarItem initWithTitle:nil image:[[UIImage imageNamed:@"white_stats.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] selectedImage:[UIImage imageNamed:@"white_stats.png"]]; 

但是,這是很難,如果以後需要回到它來讀取,所以不做那。