我想继承UINavigationBar
,以便我可以在其drawRect:
中进行自定义绘图。
这是我的代码:
导航控制器(.h)
@interface CORENavigationController : UINavigationController
@property (strong, nonatomic) CORENavigationBar *customNavigationBar;
@end
导航控制器(.m)
@implementation CORENavigationController
@synthesize customNavigationBar = _customNavigationBar;
- (UINavigationBar *)navigationBar {
if (![self customNavigationBar]) {
[self setCustomNavigationBar:[[CORENavigationBar alloc] init]];
}
return [self customNavigationBar];
}
导航栏(.h)
@interface CORENavigationBar : UINavigationBar
@end
导航栏(.m)
@implementation CORENavigationBar
- (void)drawRect:(CGRect)rect
{
[super drawRect:rect];
}
问题是导航栏没有标题,例如我只能看到标准的蓝色背景。
一旦我删除了以下方法,标题就会回到那里:
- (UINavigationBar *)navigationBar {
if (![self customNavigationBar]) {
[self setCustomNavigationBar:[[CORENavigationBar alloc] init]];
}
return [self customNavigationBar];
}
为什么标题会消失?我拨打super
的{{1}}并且不要更改任何其他内容。
谢谢!
答案 0 :(得分:3)
https://stackoverflow.com/a/9610801/1306956
在这种情况下,它是:
[navigationController setValue:[[CORENavigationBar alloc] init] forKeyPath:@"navigationBar"];
在iOS 5.1.1(9B206)上测试。像魅力一样。