現在、アプリ全体で UINavigationBar 背景画像をカスタマイズする次のコード ブロックを使用しています。
@implementation UINavigationBar(MyExtensions)
- (UIImage *)barBackground {
return [UIImage imageNamed:@"GlobalTitleBackground.png"];
}
- (void)didMoveToSuperview {
//iOS5 only
if ([self respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)])
{
[self setBackgroundImage:[self barBackground] forBarMetrics:UIBarMetricsDefault];
}
}
//this doesn't work on iOS5 but is needed for iOS4 and earlier
- (void)drawRect:(CGRect)rect {
//draw image
[[self barBackground] drawInRect:rect];
}
@end
一般に、これはうまく機能します。私が遭遇している問題は、MFMailComposeViewController を作成すると、背景もカスタマイズされることです。
したがって、私が現在持っているコードを考えると、MFMailComposeViewController によって作成された UINavigationBar を除くすべての UINavigationBars でカスタマイズを行うことは可能ですか?
前もって感謝します!