2011-04-29 48 views
1

我有我的導航欄中的2個UIBarButtonItems的導航控制器。我只想改變右側的顏色。我發現在靜態的方式來做到這一點:UIBarButtonItem tintColor與UINavigationController

[[self.navigationController.navigationBar.subviews objectAtIndex:2] setTintColor:[UIColor redColor]]; 

問題是,當我推控制器到我的導航控制器顯示另一種觀點認爲,當我回來到根視圖在我的右側導航欄按鈕應該有一個自定義顏色,該按鈕的顏色回到其默認值。當我再次點擊它時,應用程序崩潰。它說它不能改變色調的顏色,就像我的導航欄中這個元素的索引改變了一樣。

我曾嘗試在互聯網上發現的其他工藝,但都失敗了,當我使用導航控制器和回來到根控制器...

任何想法? 謝謝!

編輯1:

我想在我的UINavigationBar的一個邊框的樣式按鈕,用紅色或綠色的背景顏色。

關於我發現的其他方式,它幾乎是導航欄中視圖的foreach循環,如果視圖的種類是按鈕項,則更改tintColor。它不會崩潰,但它適用於我的導航欄的所有UIBarButtonItem(我只想要一個特定的按鈕,而不是所有的按鈕)。例如this tutorial已經有一半了,我的應用在回到根視圖控制器時崩潰了。

+0

大多數時候,我們不能拿出一個很好的解決方案,所以我不能說我們解決了我的問題。這可能是我的低利率以及未解決問題的原因。否則,我相信某人,如果他解決了,甚至部分幫助我解決我的問題... – Dachmt 2011-04-29 23:29:27

+0

@Erik B你讓我更容易然後,你沒有對我的問題有所幫助。所以我不會給你任何信用的。但是我會記住你對我的舊帖子和下一篇帖子所說的話,最好是學習一些東西,而不是一無所獲。祝你有個好的一天。 – Dachmt 2011-05-03 01:07:54

回答

1

挖掘navigationcontroller.navigation欄的子視圖不會與Apple一起飛...
更改UIBarButtonItem顏色的正確方法是使用帶有buttonitem的customView。這裏是解釋鏈接...

UIBarButtonItem with color?

+0

我已經嘗試瞭解決方案,我可以有一個按鈕,但不像我想要的那樣有邊界。我想避免創建一個圖像作爲背景。如果它是我的導航欄中唯一能夠使用自定義顏色按鈕獲得邊框樣式的解決方案,那麼我想我不會有太多選擇... – Dachmt 2011-04-29 23:34:41

+0

在按鈕中使用圖像,或者也可以使用Quartz 。讓我知道你是否想要一些代碼。 – 2011-04-30 00:46:17

0

您只需創建只有一個段分段控制。根據你的喜好設置色調。您可能還想將其模式設置爲瞬時模式,以使其光學行爲像按鈕一樣。通過使用initWithCustomView:初始化程序將分段控件添加到條按鈕項。這就是您通常創建自定義有色按鈕的方式。

例子:

UISegmentedControl *cartControl = [[UISegmentedControl alloc] initWithFrame:CGRectMake(10,7,60,30)]; 
[cartControl setTintColor:[UIColor colorWithRed:0.35 green:0.47 blue:0.65 alpha:1]]; 
[cartControl addTarget:self action:@selector(cart:) forControlEvents:UIControlEventValueChanged]; 
[cartControl setSegmentedControlStyle:UISegmentedControlStyleBar]; 
[cartControl insertSegmentWithImage:[UIImage imageNamed:@"shopping_cart_white_small.png"] atIndex:0 animated:NO]; 
[cartControl setMomentary:YES]; 

UIBarButtonItem *cartButton = [[UIBarButtonItem alloc] initWithCustomView:cartControl]; 
[cartControl release]; 
[[self navigationItem] setRightBarButtonItem:cartButton]; 
[cartButton release]; 
相關問題