以下のコードは iOS 5 では問題なく動作しますが、iOS 6 以降では動作しません。電子メール コンポーザ シートの場合、navigationBar の画像が他の UINavigationBar クラスとは異なるようにする必要があります。デバッグ ポインターが Appearance メソッドに応答していることを理解できませんが、デバイスでは、navigationBar 画像が "bgNavigationBar.png" として表示されます。期待されるのは「bgNavigationBar_2.png」です。
私を案内してください.......
if ([[UINavigationBar class]respondsToSelector:@selector(appearance)]) {
UIImage *logoImage44 = [[UIImage imageNamed:@"bgNavigationBar.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
[[UINavigationBar appearance] setBackgroundImage:logoImage44 forBarMetrics:UIBarMetricsDefault];
UIImage *ImagePlain = [[UIImage imageNamed:@"bgNavigationBar_2.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
[[UINavigationBar appearanceWhenContainedIn:[MFMailComposeViewController class], nil] setBackgroundImage:ImagePlain forBarMetrics:UIBarMetricsDefault];
}