无法在iOS SDK中自定义UINavigationBar的外观:
问题描述:
我试图自定义导航var的外观,它出现几次通过我的应用程序(通用:我正在使用故事板)。出于某种原因,钍的应用程序无法正常工作(它卡在该行:无法在iOS SDK中自定义UINavigationBar的外观:
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
在main.m文件
,说:“主题1:信号SIGABRT”。
我写的代码是此:
UIImage * TabBarBG = [UIImage imageNamed:@"TabBarBG.png"];
[[UITabBar appearance] setBackgroundImage:TabBarBG];
[[UINavigationBar appearance] setBackgroundImage:TabBarBG];
标签栏的定制完美的作品顺便说一下,我有一个不同的图片检测NavBar尝试过,但它不是在这里为简单起见
上面的代码是在appDelegate类的一个名为“customizeInterface”的方法中找到,它从相同类(appDelegate)的didFinishLaunchingWithOptions方法中调用。
任何想法,为什么可能发生,我能做些什么来使它工作?
任何意见赞赏!
答
UINavigationBar的外观API不支持名为setBackgroundImage:
的方法。它确实支持一种名为setBackgroundImage:forBarMetrics:
的方法。因此,尝试:
[[UINavigationBar appearance] setBackgroundImage:TabBarBG forBarMetrics:UIBarMetricsDefault];
它没有得到“卡“,UIApplicationMain在应用程序异常退出时返回,这会中断运行循环。什么是日志打印? – CodaFi 2012-07-05 15:45:19
2012-07-05 18:37:41.324 SocialNow [797:f803] - [_ UIAppearance setBackgroundImage:]:无法识别的选择器发送到实例0x6d42930 2012-07-05 18:37:41.326 SocialNow [797:f803] ***终止应用程序由于未捕获的异常 'NSInvalidArgumentException',原因是: ' - [_ UIAppearance了setBackgroundImage:]:无法识别的选择发送到实例0x6d42930' ***第一掷调用堆栈: (0x13c9022 0x155acd6 0x13cacbd 0x132fed0 0x132fcb2 0x2bea 0x2997 0x11386 0x12274 0x21183 0x21c38 0x15634 – byteSlayer 2012-07-05 15:58:21
0x12b3ef5 0x139d195 0x1301ff2 0x13008da 0x12ffd84 0x12ffc9b 0x11c65 0x13626 0x290d 0x2875) 终止调用抛出异常(lldb) – byteSlayer 2012-07-05 15:58:36