我正在为我的导航栏设置图像,如下所示:
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navbar.png"] forBarMetrics:UIBarMetricsDefault];
然后我不希望这个图像用于MFMessageComposeViewController的类,所以我通过这样做排除它:
[[UINavigationBar appearanceWhenContainedIn:[MFMessageComposeViewController class],nil] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
但它没有任何效果(导航栏仍然使用我的图像在MFMessageComposeViewController中设置样式).我在这里想念的是什么?
解决方法
找到我的问题的解决方案:
子类MFMessageComposeViewController
在init方法中,将navigationBar的backgroundImage设置为nil
瞧!
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization [self.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault]; } return self; }