从MFMailComposeViewController中删除导航图像

时间:2013-12-14 13:03:25

标签: objective-c uinavigationcontroller uinavigationbar mfmailcomposeviewcontroller

我正在更新2年前使用nib文件完成的项目。

我看到了导航图片,他已经使用了

-(id)initWithRootViewController:(UIViewController *)rootViewController
{

    self = [super initWithRootViewController:rootViewController];
    if (self)
    {
        self.delegate = self ;
        [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"top_bar_bg.png"] forBarMetrics:UIBarMetricsDefault];
        //[self.navigationBar setTintColor:[UIColor blackColor]];
        self.navigationController.navigationBar.autoresizingMask = UIViewAutoresizingFlexibleTopMargin;
    }
    return self ;
}

对于他有的电子邮件

MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;
[picker setSubject:@"CarZone"];

// Set up recipients
NSArray *toRecipients = [NSArray arrayWithObject:dealerInfo.dealerEmail]; 
[picker setToRecipients:toRecipients];
// Fill out the email body text
NSString *emailBody = @"Input your message here.";
[picker setMessageBody:emailBody isHTML:YES];
[self.navigationController presentViewController:picker animated:YES completion:^{
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
}];
[picker release];

我尝试使用

隐藏导航栏
self.navigationController.navigationBar.backIndicatorImage = [UIImage imageNamed:@"text_field.png"];
self.navigationController.navigationBar.backgroundColor = [UIColor whiteColor];

self.navigationController.navigationBar.hidden = YES:

还将self.navigationController替换为picker.navigationController

仍然没有...

如何隐藏此菜单?发送时,客户端不希望看到导航。他想要纯白色屏幕或蓝色导航作为iOS 7/6标准。

知道如何为nib文件完成此操作吗?

2 个答案:

答案 0 :(得分:0)

有时UGLY是更好的方式然后没有......

发送时我添加了下面的代码......

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"top_bar_bgwhite.png"] forBarMetrics:UIBarMetricsDefault];

我正在创建白色背景的顶栏......:D:P

didFinishWithResult我换回原来的

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"top_bar_bg.png"] forBarMetrics:UIBarMetricsDefault];

丑陋的方式,但无法处理它。

注意:对于iOS 6,top_bar_bgwhite.png将为top_bar_bgblue.png

答案 1 :(得分:0)

您可以尝试仅使用

将图像设置回MFMailComposeViewController
[[UINavigationBar appearanceWhenContainedIn:[MFMailComposeViewController class], nil] setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];

要对UINavigationBar的{​​{1}}进行任何操作,您需要调用像MFMailComposeViewControllerm这样的安抚,因为 MFMailComposeViewController直接从UINavigationController 继承,您不需要通过self.navigationController访问