Ios 如何通过编程设置UINavigationbar的背景色?

Ios 如何通过编程设置UINavigationbar的背景色?,ios,objective-c,cocoa-touch,uinavigationbar,Ios,Objective C,Cocoa Touch,Uinavigationbar,我正在使用cocoacontrols.com上的cocoa iOS组件,它不使用故事板。此类将创建一个新的模态视图,模态视图的顶部有一个导航栏。我正在尝试更改导航栏的颜色。在所有其他基于故事板的视图中,我使用STBaseViewController的基类,该基类将导航栏设置为白色 我已经将这个cocoacontrol类更改为STBaseViewController而不是UIViewController,但它仍然没有将我的背景更改为白色 @interface BZPasscodeFieldCont

我正在使用cocoacontrols.com上的cocoa iOS组件,它不使用故事板。此类将创建一个新的模态视图,模态视图的顶部有一个导航栏。我正在尝试更改导航栏的颜色。在所有其他基于故事板的视图中,我使用STBaseViewController的基类,该基类将导航栏设置为白色

我已经将这个cocoacontrol类更改为STBaseViewController而不是UIViewController,但它仍然没有将我的背景更改为白色

@interface BZPasscodeFieldController : STBaseViewController
在BZPasscodeFieldController中,他们没有引用任何导航栏,所以我不确定它是如何出现的(同样,它没有故事板的唯一XIB,也没有导航栏)

不管怎样,有人知道如何通过编程将导航栏的背景色设置为白色吗


此外,在我所有带有UINavigationBar的情节提要视图控制器中,我在标题所在的区域添加了一个UIButton,这样我可以轻松更改字体/样式并使其可单击。我需要将相同的UIButton添加到通过编程创建的BZPasscodeFieldController的uinavigationBar中。我该怎么做呢?

关于导航栏标题位置按钮的问题。每个导航栏都有一个
标题视图
属性,您可以为其指定任何视图。例如,看看这个方法,您可以在BZPasscodeFieldController中调用它:

[self.navigationController.navigationBar setTintColor:[UIColor whiteColor]];
- (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:应使其正常工作,除非自定义视图控制器类中出现问题。

设置导航栏背景颜色:

[[UINavigationBar appearance] setBarTintColor:[UIColor orangeColor]];
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
要设置导航栏的着色颜色:

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

不起作用。它仍然是灰色的。实际上如果我“po self.navigationController”它说导航栏为零?那么如果导航栏为零,它将如何显示导航栏?@jgervin你把它放在哪里了ViewDidLoad。我想它实际上是UITableView中的导航栏。你可以将你的xib转移到你的故事板中,对吗?然后就推断出导航栏?