2

我正在尝试通过子类化导航控制器来自定义 NavigationBar。由于某种原因,我无法显示自定义按钮。我的设置非常简单,我有一个 ViewController 嵌入到使用我的自定义子类NavController的导航控制器中:

@interface NavController ()

@end

@implementation NavController

- (void)viewDidLoad{
    [super viewDidLoad];

    UIImage *wlImage = [UIImage imageNamed:@"wl-icon.png"];

    UIButton *wlButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [wlButton setFrame:CGRectMake(0, 0, wlImage.size.width, wlImage.size.height)];
    [wlButton setBackgroundImage:wlImage forState:UIControlStateNormal];

    UIBarButtonItem *wlButtonItem = [[UIBarButtonItem alloc] initWithCustomView:wlButton];
    wlButtonItem.tintColor = [UIColor blackColor];

    self.navigationItem.rightBarButtonItem = wlButtonItem;
    self.navigationBar.tintColor = [UIColor blackColor];
}

@end

当我尝试测试应用程序时,唯一可行的自定义是色调。按钮不会出现。

在此处输入图像描述

我想知道它是否与导航项有关。

难道是我的初始视图控制器在它自己的默认设置中覆盖了导航项?

4

1 回答 1

5

虽然导航控制器有一个navigationItem,但它从未真正使用过。您应该重写导航控制器方法来推送视图控制器(或使用委托方法),而不是修改navigationItem推送的每个新视图控制器。

于 2013-07-26T18:44:18.437 回答