无法在iOS SDK中自定义UINavigationBar的外观:

无法在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方法中调用。

任何想法,为什么可能发生,我能做些什么来使它工作?

任何意见赞赏!

+0

它没有得到“卡“,UIApplicationMain在应用程序异常退出时返回,这会中断运行循环。什么是日志打印? – CodaFi 2012-07-05 15:45:19

+0

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

+0

0x12b3ef5 0x139d195 0x1301ff2 0x13008da 0x12ffd84 0x12ffc9b 0x11c65 0x13626 0x290d 0x2875) 终止调用抛出异常(lldb) – byteSlayer 2012-07-05 15:58:36

UINavigationBar的外观API不支持名为setBackgroundImage:的方法。它确实支持一种名为setBackgroundImage:forBarMetrics:的方法。因此,尝试:

[[UINavigationBar appearance] setBackgroundImage:TabBarBG forBarMetrics:UIBarMetricsDefault]; 

而且,这里是你如何能更改导航栏的标题和阴影颜色(如果它与你的新的背景图像冲突):

https://*.com/a/11005059/215845

+1

Thankyou的额外有用的信息! – byteSlayer 2012-07-05 20:02:14