我正在覆盖UINavigationController
以使用我自己的navigationBar
子类的实例替换默认的UINavigationBar
属性。所以我试过像
_navigationBar = [[SBNavigationBar alloc] init];
在我的-initWithRootViewController:
中。但这并没有像我预期的那样有效。仍然显示默认的navigationBar
。
那么覆盖navigationBar
的最佳点是什么?
提前致谢
-f
答案 0 :(得分:1)
如果查看文档http://developer.apple.com/iphone/library/documentation/uikit/reference/UINavigationController_Class/Reference/Reference.html,您会看到 navigationBar 属性只读。
要拥有自定义navigationBar
,您可以使用类别。您将在 stackoverflow 上找到许多回答此问题的问题。
一个简单的版本是将图像放在 drawRect:中,就像这样......
@implementation UINavigationBar (Custom)
- (void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed: @"bg_toolbar.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end