我试图通过继承导航控制器来自定义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
当我尝试测试应用时,唯一可行的自定义就是色调。该按钮不会出现。
我想知道它是否与导航项有关。
可能是我的初始视图控制器在其自己的默认设置中覆盖了导航项吗?
答案 0 :(得分:4)
虽然导航控制器有navigationItem
,但它实际上从未使用过。您应该重写导航控制器方法以推送视图控制器(或使用委托方法)来修改推送的每个新视图控制器的navigationItem
。