2

我正在使用来自 cocoacontrols.com 的可可 iOS 组件,它不使用情节提要。此类创建一个新的模态视图,并且模态视图顶部有一个 NavigationBar。我正在尝试更改导航栏的颜色。在我所有其他基于情节提要的视图中,我使用 STBaseViewController 的基类将导航栏设置为白色。

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

@interface BZPasscodeFieldController : STBaseViewController

在 BZPasscodeFieldController 中,他们没有对导航栏进行任何引用,所以我不确定它是如何显示的(同样它没有情节提要的唯一 xib,也没有导航栏)?

无论如何,有谁知道如何以编程方式将导航栏背景颜色设为白色?

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

4

4 回答 4

3

设置导航栏背景颜色:

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

设置导航栏色调颜色:

[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
于 2014-11-08T04:36:47.323 回答
1
[self.navigationController.navigationBar setTintColor:[UIColor whiteColor]];
于 2013-07-27T19:05:30.130 回答
1
[[UINavigationBar appearance] setTintColor:[UIColor blueColor]];
于 2013-07-27T19:13:24.273 回答
1

关于导航栏标题位置上的按钮的问题。每个 navigationBar 都有一个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: 应该使其正常工作,除非您的自定义视图控制器类中出现问题。

于 2013-07-28T00:59:54.633 回答