【问题标题】:Mail Compose View Controller Navigation Bar [duplicate]邮件撰写视图控制器导航栏 [重复]
【发布时间】:2013-07-08 22:30:46
【问题描述】:

我正在设置外观协议,以便为我的所有导航栏添加自定义图像。这按预期工作,但我不想改变外观 MFMailComposeViewController 的导航栏。

如何使这个导航栏成为默认导航栏?

[[UINavigationBar appearance] setBackgroundImage:[ApplicationStyle navigationBarImage] forBarMetrics:UIBarMetricsDefault];

【问题讨论】:

    标签: iphone ios objective-c


    【解决方案1】:

    appearance 代理使您能够通过 -appearanceWhenContainedIn 方法修改包含在特定类中的 UI 的外观。您可以将图像设置为 nil 以防止它显示在 MFMailComposeViewController 类中,如下所示。 [[UINavigationBar appearanceWhenContainedIn:[MFMailComposeViewController class], nil] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];

    根据这个问题,您需要在呈现模态 MFMailComposeViewController 之前和之后更改外观代理,以便将其外观改回原来的样子。

    Override UIAppearance property for MFMailComposeViewController

    【讨论】:

    • 我试过了,还是不行
    • 这很奇怪,我将上面的代码用于完全相同的目的,而且效果很好。关于同一事项的所有其他问题也提供了相同的答案。您确定没有在其他任何地方覆盖 navigationBar 外观吗?
    • 你能确认这在 iOS 6 中有效吗,我不会在其他任何地方覆盖外观
    • 谢谢 我搜索的时候没有看到那篇文章
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-09
    相关资源
    最近更新 更多