Ios 删除电子邮件工作表上的自定义导航栏
我的应用程序代理中有以下代码:Ios 删除电子邮件工作表上的自定义导航栏,ios,objective-c,uinavigationbar,mfmailcomposeviewcontroller,Ios,Objective C,Uinavigationbar,Mfmailcomposeviewcontroller,我的应用程序代理中有以下代码: [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"Nav Bar.png"] forBarMetrics:UIBarMetricsDefault]; 这很好用,但是我使用了MFMailComposeViewController,我希望它具有默认的导航栏外观 我该怎么做 编辑: 我尝试了以下代码: [[UINavigationBar appearanceWhenContai
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"Nav Bar.png"] forBarMetrics:UIBarMetricsDefault];
这很好用,但是我使用了MFMailComposeViewController
,我希望它具有默认的导航栏外观
我该怎么做
编辑:
我尝试了以下代码:
[[UINavigationBar appearanceWhenContainedIn: [MFMailComposeViewController class], [UIViewController class], nil] setBackgroundImage:[UIImage imageNamed:@"Textured Background.png"] forBarMetrics:UIBarMetricsDefault];
我也尝试过只使用这个代码。没有什么变化。默认导航栏,包括邮件视图控制器
我认为它可能是一个带有
外观的东西,当它包含在:
中时。有人知道MFMailComposeViewController将包含在什么中吗?您可以尝试以下方法:
[UINavigationBar appearanceWhenContainedIn: [MFMailComposeViewController class], nil]
这意味着MFMailComposeViewController类中包含的所有导航栏
从文档中:
这将返回外观代理,以便您可以按如下方式修改它:
[[UINavigationBar appearanceWhenContainedIn: [MFMailComposeViewController class], nil] setBackgroundImage:myImage];
希望对您有所帮助。您可以尝试以下方法:
[UINavigationBar appearanceWhenContainedIn: [MFMailComposeViewController class], nil]
这意味着MFMailComposeViewController类中包含的所有导航栏
从文档中:
这将返回外观代理,以便您可以按如下方式修改它:
[[UINavigationBar appearanceWhenContainedIn: [MFMailComposeViewController class], nil] setBackgroundImage:myImage];
希望能有帮助。我想出来了!代码如下:
[[UINavigationBar appearance] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
MFMailComposeViewController *emailVC = [[MFMailComposeViewController alloc] init];
//the rest of the implementation goes here...
[self presentViewController:emailVC animated:YES completion:nil];
然后,我在此处将导航栏外观设置回正常状态:
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"Nav Bar.png"] forBarMetrics:UIBarMetricsDefault];
[self dismissViewControllerAnimated:YES completion:nil];
}
我知道了!代码如下:
[[UINavigationBar appearance] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
MFMailComposeViewController *emailVC = [[MFMailComposeViewController alloc] init];
//the rest of the implementation goes here...
[self presentViewController:emailVC animated:YES completion:nil];
然后,我在此处将导航栏外观设置回正常状态:
- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"Nav Bar.png"] forBarMetrics:UIBarMetricsDefault];
[self dismissViewControllerAnimated:YES completion:nil];
}
没用。这是我的代码:
[[UINavigationBar appearancewhen containedin:[MFMailComposeViewController class],nil]setBackgroundImage:[UIImage imageNamed:@“Mail Nav.png”]forBarMetrics:UIBarMetricsDefault]
邮件导航.png是一个透明的图像,所以它应该只显示正常导航栏。@科迪,我不认为你可以将其还原为“正常”导航栏,正常导航栏内部也设置了背景图像(或色调不确定),所以一旦更改,你就无法还原它。你必须从本质上重现它所使用的背景图像。我认为它可能是某种带有外观的东西,如果包含在:
中。你知道MFMailComposeViewController将包含在哪个MFMailComposeViewController
中吗?不起作用。这是我的代码:[[UINavigationBar appearancewhen containedin:[MFMailComposeViewController class],nil]setBackgroundImage:[UIImage imageNamed:@“Mail Nav.png”]forBarMetrics:UIBarMetricsDefault]
邮件导航.png是一个透明的图像,所以它应该只显示正常导航栏。@科迪,我不认为你可以将其还原为“正常”导航栏,正常导航栏内部也设置了背景图像(或色调不确定),所以一旦更改,你就无法还原它。你必须从本质上重现它所使用的背景图像。我认为它可能是某种带有外观的东西,如果包含在:
中。你知道MFMailComposeViewController将包含在什么MFMailComposeViewController
中吗?它对我不起作用。。形象在我的外表中总是如此showed@gbesler-没问题,这对我不起作用。。形象在我的外表中总是如此showed@gbesler-没问题。