2013-07-27 651 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]]; 
相关问题