サブクラス化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
私は'sと呼び、drawRect:
他には何も変更しません。
ありがとう!