2014-06-14 160 views
2

我正在開發一款應用程序,其iOS 7.1作爲其部署目標。到目前爲止,一切正常,但是有一個巨大的問題,標籤欄圖像沒有顯示出來。這是令人困惑的,因爲它們在iOS 8模擬器上運行時顯示,我正在使用Xcode 6 beta 1.TabBar iOS 7.1中未顯示的圖像

我已經設置了兩個圖像。尺寸是60x60和70x60。所以尺寸似乎不成問題。我已經在Interface Builder中設置了這些圖像。但是,當將標籤欄圖像記錄到控制檯時,它將返回nil。然後,我嘗試在代碼中設置圖像,並使用相同的方法將其記錄到控制檯,現在我有一個圖像的內存地址,但它仍然不顯示。

當谷歌和計算器的答案搜索,我發現這個方法:

 self.tabBarItem.image = [[UIImage imageNamed:@"IMAGE"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 
self.tabBarItem.selectedImage = [[UIImage imageNamed:@"IMAGE"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 
NSLog(@"%@", self.tabBarItem.image); 

這個工作對一些用戶很明顯,但不適合我。我無法弄清楚,如果有人能幫助我,我會很高興。

+0

您確定您有一個名爲「圖像」的圖像?除非A)self.tabBarItem不存在(=零)或B)圖像不存在 –

+0

我用這個帖子的「圖像」取代了原來的名字。在Interface Builder中設置圖像,然後將其記錄到我的視圖控制器中的控制檯時,我得到nil。當我在控制器中設置圖像並記錄圖像時,我得到一個內存地址,但圖像仍然不顯示。 – Valentin

+0

你已經將這個添加到UITabBarController類中了嗎? –

回答

0

我對你在做什麼有感覺,但是現在還不清楚。

你有一個標籤欄,但你有一個標籤欄項目本身的插座。

這不是你會這樣做的方式。您創建一個標籤欄的插座,然後添加自定義項目:

UIImage *defaultImage = [UIImage imageNamed:@"ImageName"]; 
UIImage *selectedImage = [UIImage imageNamed:@"ImageName"]; 
UITabBarItem *itemZero = [[UITabBarItem alloc] initWithTitle:@"Item One" image:defaultImage selectedImage:selectedImage]; 

UITabBarItem *itemOne = [[UITabBarItem alloc] initWithTitle:@"Item Two" image:defaultImage selectedImage:selectedImage]; 

NSArray *items = @[itemZero,itemOne]; 
[self.tabBar setItems:items animated:animated]; 
+0

謝謝。事情是,我的故事板中設置了我的TabBarController。向其中添加ViewControllers時,標籤欄項目會自動創建,您可以設置標題和圖像。所以我可以在我的代碼中引用它,而無需設置插座,使用self.tabBarItem是因爲我的Controller已連接到TabBarController。我希望這是有道理的。 – Valentin