向 UINavigationController 子类添加自定义按钮

Sco*_*ser 2 uinavigationbar uinavigationcontroller uinavigationitem ios ios6

我正在尝试通过子类化导航控制器来自定义 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
Run Code Online (Sandbox Code Playgroud)

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

在此处输入图片说明

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

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

Wai*_*ain 5

虽然导航控制器有一个navigationItem,但它从未被实际使用过。您应该覆盖导航控制器方法来推送视图控制器(或使用委托方法)来修改navigationItem每个推送的新视图控制器的 。