CommonViewController
,继承自UINavigationController
。我在其中完成了以下方法。
+ (void)initialize{
UINavigationBar *naVcBar = [UINavigationBar appearance];
[naVcBar setBackgroundImage:[UIImage imageNamed:@"bg_nav"] forBarMetrics:UIBarMetricsDefault];
UIBarButtonItem *buttonItem = [UIBarButtonItem appearance];
NSMutableDictionary *textAttributes = [NSMutableDictionary dictionary];
[textAttributes setObject:[UIColor blackColor] forKey:UITextAttributeFont];
[buttonItem setTitleTextAttributes:textAttributes forState:UIControlStateNormal];
}
然后,有一个名为viewController
的{{1}},MovieListViewController
的{{1}},其中包含以下代码。
rootViewController
结果是程序崩溃了。
它崩溃在:CommonViewController
所以我尝试修复它,并在我删除代码时发现
- (void)viewDidLoad {
[super viewDidLoad];
UIBarButtonItem *right=[[UIBarButtonItem alloc] initWithTitle:@"切换模式" style:(UIBarButtonItemStylePlain) target:self action:@selector(exchangeView)];
self.navigationItem.rightBarButtonItem=right;
}
一切都好。
但我不知道原因,为什么?谢谢!
错误:
***由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [UICachedDeviceWhiteColor pointSize]:无法识别的选择器发送到实例0x7fb048c3b3d0'
答案 0 :(得分:2)
你的问题在于这一行:
[textAttributes setObject:[UIColor blackColor] forKey:UITextAttributeFont];
您传入的颜色却指定了“font”属性。改变其中一个。传入字体而不是颜色,或将键更改为用于颜色的键。
此外,不推荐使用UITextAttributeFont
。请改用NSFontAttributeName
。