ios4 - 在 iOS 4.x 中以模态方式呈现新 View Controller 时更改导航栏色调颜色

标签 ios4 presentmodalviewcontroller email-client navigationbar tintcolor

在我的 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/

相关文章:

iphone - 关闭 Controller 时将值传递给父 Controller

ios - 在 Modal Segue 之后从内存中删除 UIViewController

imap - 从电子邮件地址确定 POP/IMAP 服务器

php - 通过 PHP 应用程序使用 tomcat 服务器发送电子邮件

iphone - ios中的信用卡支付

ios - iPhone : UITextField default text problem

iphone - PresentModalViewController 和 navigationController

objective-c - objective-c : Protocol + Delegate to pass data back from Login form in a Modal View to an tab bar controller view

从后台恢复后,iOS 在 NSManagedObjectContext 上崩溃调用回滚

arduino - 我在尝试从 Arduino 和以太网扩展板发送电子邮件时收到来自 gmail 服务器的错误 530 5.7.0