首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS - UIAppearance appearanceWhenContainedIn问题

iOS - UIAppearance appearanceWhenContainedIn问题
EN

Stack Overflow用户
提问于 2012-08-18 17:13:12
回答 3查看 3.3K关注 0票数 7

我为我的导航栏设置了一个图像,如下所示:

代码语言:javascript
复制
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navbar.png"] forBarMetrics:UIBarMetricsDefault];

然后我不想让这个图像出现在MFMessageComposeViewController的类中,所以我通过这样做来排除它:

代码语言:javascript
复制
[[UINavigationBar appearanceWhenContainedIn:[MFMessageComposeViewController class], nil] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];

但它没有任何效果(导航栏的样式仍然是我在MFMessageComposeViewController中的图像)。这里我漏掉了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-18 23:43:49

找到了我问题的解决方案:

MFMessageComposeViewController子类化

在init方法中,将navigationBarbackgroundImage设置为nil

瞧!

代码语言:javascript
复制
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

    if (self) {
        // Custom initialization
        [self.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];

    }
    return self;
}
票数 4
EN

Stack Overflow用户

发布于 2012-10-30 16:45:53

就在展示MFMessageComposeViewController try之前

代码语言:javascript
复制
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"MyUINavigationBarImageClear"] forBarMetrics:UIBarMetricsDefault];

并在messageComposeViewController:didFinishWithResult:回调中重置为

代码语言:javascript
复制
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"MyUINavigationBarImageFull"] forBarMetrics:UIBarMetricsDefault];

我还设置了MFMessageComposeViewController的.navigationBar.tintColor属性,以获得与我的MyUINavigationBarImageClear图像匹配的cancel按钮。

票数 2
EN

Stack Overflow用户

发布于 2012-08-18 22:03:09

这里有两个想法(但没有经过测试):

1)我怀疑尝试用nil覆盖是行不通的-该语句被忽略。我建议你做的是创建一个透明的图像,并使用它作为MFMessageComposeViewController的背景。

2)如果这失败了,那么我猜你将不得不非常具体地说明何时使用你的图像,所以你将不得不用覆盖整个类的一长串“何时包含在”语句来替换第一个语句。如果你有一个所有视图控制器都使用的子类-某个基类-那么我相信你可以用它来代替。希望#1行得通!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12017382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档