在我的 View Controller 中,我有以下代码
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
NSLog(@"%s",__PRETTY_FUNCTION__);
self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:201.0/255.0 green:201.0/255.0 blue:201.0/255.0 alpha:1.0];
}
在这个 View 中,当我单击一个按钮时,我将以模态方式呈现 MFMailComposeViewController
。当我以模态方式呈现 MFMailComposeViewController
时,导航栏的颜色与 viewWillAppear
中设置的颜色相同。我想要默认的蓝色,因为 Apple 告诉我不要自定义这个 View 。这是我试过的代码
代码 1:
-(void)sendEmailWithWithRecipients:(NSArray*)recipients andData:(NSData*)data {
if ([MFMailComposeViewController canSendMail]){
MFMailComposeViewController *mailComposeViewController = [[MFMailComposeViewController alloc] init];
mailComposeViewController.mailComposeDelegate = self;
self.navigationController.navigationBar.tintColor = nil;
[self presentModalViewController:mailComposeViewController animated:YES];
[mailComposeViewController release];
}
else {
[self showAlertWithTitle:@"Alert" andMessage:@"Can not send email. Please check your email settings."];
}
}
但上面的代码不适用于色调
代码 2:在 viewWillDisappear
中设置色调颜色
-(void)viewWillDisappear:(BOOL)animated {
NSLog(@"%s",__PRETTY_FUNCTION__);
self.navigationController.navigationBar.tintColor = nil;
[super viewWillDisappear:animated];
}
代码 2 也不起作用。
但这在 iOS5 中工作正常没有设置tintColor = nil
同时呈现MFMailComposeViewController
模态和viewWillDisappear
.它不工作 iOS 4.x
有人有解决办法吗?谢谢。
最佳答案
您可以通过访问 yourController 的(您预设的 ViewController)topViewController 来自定义导航栏的色调。
例如:
[self presentModalViewController:yourController animated:YES];
yourController.topViewController.navigationController.navigationBar.tintColor =
[UIColor (Your Color)];
关于ios4 - 在 iOS 4.x 中以模态方式呈现新 View Controller 时更改导航栏色调颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10328955/