3

在我的導航欄中,我有兩個左右位置的按鈕和一個導航標題的segmentetControll視圖。 我想將導航欄的背景顏色更改爲黑色,但其上的項目顏色將爲另一種顏色。 我該怎麼做? 我嘗試將導航條的tintColor改爲黑色。 但我顯示segmentedControll的顏色和導航欄上的按鈕也變爲黑色。如何改變導航欄的背景顏色

在此先感謝。

回答

12

嘗試將對象設置爲navigationBar的子視圖。

設置着色顏色

UINavigationController *theNavigationController = [[UINavigationController alloc] initWithRootViewController: aFeedControler]; 
theNavigationController.navigationBar.tintColor = [UIColor blackColor]; 

添加segmentedControl像這樣在viewControllers子視圖:

UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems: 
[NSArray arrayWithObjects:[UIImage imageNamed:@"segment_check.png"], 
[UIImage imageNamed:@"segment_search.png"], 
[UIImage imageNamed:@"segment_tools.png"], nil]]; 
    CGRect frame = CGRectMake(0,0, 200,40); 
    segmentedControl.frame = frame; 
    [segmentedControl addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged]; 
    segmentedControl.segmentedControlStyle = UISegmentedControlStylePlain; 
    segmentedControl.selectedSegmentIndex = 1; 
    self.navigationItem.titleView = segmentedControl; 

對於你應該儘量創造UIButtons不UIBarButtonsItems,並將其添加爲子視圖還按鈕。如果你創建UIBarButtonsItems並像這樣添加它們self.navigationItem.rightBarButtonItem = tempButton;你會得到你看到的效果。

如果你添加他們作爲子視圖你不應該有你提到的問題..希望它有幫助。

+0

感謝您的解決方案。 – faisal

+0

如果問題解決了,請關閉該問題。 –

+0

爲什麼投下來? –

0

您在導航欄中有名爲tintColor的屬性。您可以將其值設置爲任何顏色。

0
UINavigationController *_navigationController = [[UINavigationController alloc] initWithRootViewController: _viewController]; 

either this 
_navigationController.navigationBar.tintColor = [UIColor blackColor]; 

OR 
_navigationController.navigationBar.barStyle=UIBarStyleBlack; 



Now about right and left buttons: 
UIButton *btnLeft=[UIButton buttonWithType:UIButtonTypeCustom]; 
btnLeft.frame=CGRectMake(0.0, 5.0, 50.0, 30.0); 
btnLeft.backgroundColor=[UIColor RedColor]; 
btnLeft.layer.borderColor=[UIColor whiteColor].CGColor; 
btnLeft.titleLabel.textColor=[UIColor blackColor]; 
btnLeft.titleLabel.font=[UIFont boldSystemFontOfSize:10.0]; 

_navigationController.navigationItem.leftBarButtonItem=[[UIBarButtonItem alloc]initWithCustomView:btnLeft]; 



similary you can add right bar button 
相關問題