2013-07-27 260 views
2

我正在使用cocoacontrols.com的可可iOS組件,它不使用故事板。這個類創建一個新的模態視圖,模態視圖頂部有一個NavigationBar。我試圖讓導航欄的顏色改變。在我的所有其他視圖中,這些視圖都是基於故事板的,我使用STBaseViewController的基類,它將navigationBar設置爲白色。如何以編程方式設置UINavigationbar的背景顏色?

我改變了這個cocoacontrol類是一個STBaseViewController而不是一個UIViewController,但它仍然沒有改變我的背景爲白色。

@interface BZPasscodeFieldController : STBaseViewController 

在BZPasscodeFieldController,他們不做出一個導航欄任何引用,所以我不知道怎麼了,即使顯示出來(再次它沒有故事板的唯一xibs和他們沒有navigationbars)?

無論如何,有沒有人知道如何使導航欄背景顏色白色編程?

此外,在所有具有UINavigationBar的故事板viewController中,我在標題所在的區域添加了UIButton,以便我可以輕鬆更改字體/樣式並使其可點擊。我需要將這個相同的UIButton添加到以編程方式創建的此BZPasscodeFieldController的uinavigationBar中。我會怎麼做呢?

回答

1

您來信詢問有關的導航欄的標題處的按鈕問題。每個導航欄都有一個titleView屬性,您可以爲其分配任何視圖。例如看看這個方法,你可以把它在你的BZPasscodeFieldController:

- (void) setNavigationBarTitleButton 
{ 
    UIButton* centralButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 40, 44)]; 
    [centralButton setImage:navigationCentralButtonImage forState:UIControlStateNormal]; 
    [centralButton setShowsTouchWhenHighlighted:TRUE]; 
    [centralButton addTarget:self action:@selector(goHigher) forControlEvents:UIControlEventTouchDown]; 

    self.navigationItem.titleView = centralButton; 

} 

對於以前的問題已經提供的答案是正確的,稱他們在正確的地方(例如,在AppDelegate中的應用中:didFinishLaunchingWithOptions :應該使其工作,除非事情是在你的自定義視圖控制器類搞砸

+0

你可以將你的xib轉移到你的故事板上,對不對?那麼只需推斷導航欄? – ambientlight

+0

你是救星! – jdog

1
[self.navigationController.navigationBar setTintColor:[UIColor whiteColor]]; 
+0

不起作用。它仍然是灰色的。其實如果我「po self.navigationController」它說導航欄是零?那麼它將如何顯示導航條,如果它的零? – jdog

+0

@jgervin你把它放在哪裏 – meda

+0

viewDidLoad。我在想它實際上是一個UITableView中的導航欄。 – jdog

1
[[UINavigationBar appearance] setTintColor:[UIColor blueColor]]; 
2

要設置導航欄背景顏色:

[[UINavigationBar appearance] setBarTintColor:[UIColor orangeColor]]; 

設置導航欄色調:

[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]]; 
相關問題