UIBarButtonItem在按下后更改字体,在外观代理中指定

时间:2013-09-21 17:38:24

标签: ios xcode uibarbuttonitem ios7

我在AppDelegate中通过UIBarButtonItem代理设置了appearance标题字体:

[[UIBarButtonItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                                                      [UIFont fontWithName:@"Segoe Print" size: 14.0], UITextAttributeFont,
                                                      DEF_TITLE_COLOR,UITextAttributeTextColor,
                                                      [UIColor colorWithRed:100/255 green:128/255 blue:43/255 alpha:0.4], UITextAttributeTextShadowColor,
                                                      [NSValue valueWithUIOffset:UIOffsetMake(0, 1)], UITextAttributeTextShadowOffset, nil]
                                            forState:UIControlStateNormal&UIControlStateHighlighted&UIControlStateDisabled];

之后我在我的应用的某个地方呼叫presentViewController::。栏按钮显示正确的字体和背景图像,我在此ViewController中设置(不是通过外观):

enter image description here

但是当我按下“加入”按钮时,会显示标准的非自定义UIAlertView,并且在它出现在屏幕上之后我的barButton字体变为...标准?颜色也看起来像色彩。我不知道自己做错了什么,尝试了大量的事情来解决这个问题:

enter image description here

此错误仅出现在iOS7上。

2 个答案:

答案 0 :(得分:1)

好吧,我认为外观代理不能像我预期的那样工作。我在初始化UIBarButtonItem的地方之前复制粘贴的自定义方法,并且它作为魅力。

答案 1 :(得分:-1)

这适用于iOS 7:

viewDidLoad方法中:

[self.navigationController.navigationBar setBarTintColor:[UIColor whiteColor]];

并设置字体属性。