我在Xcode 4.2 Build 4D199中创建了一个新的测试iOS5项目,并尝试如上所述设置UINavigationBar
的外观,但没有任何反应。
我在viewDidLoad
中尝试的代码:
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navbar-iphone.png"] forBarMetrics:UIBarMetricsDefault];
我可以让它工作的唯一方法是在UINavigationBar
的实例上设置外观。像:
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navbar-iphone.png"] forBarMetrics:UIBarMetricsDefault];
发生了什么事?还有其他人有这个问题吗?
答案 0 :(得分:18)
viewDidLoad
是错误地使用导航控制器导航栏的appearance
代理。在创建导航控制器之前执行此类操作。在您的应用中,代理applicationDidFinishLaunching
是个好地方。
答案 1 :(得分:1)
您是否仔细检查过图像文件是否存在?
答案 2 :(得分:1)
您需要提供barMetrics:为此工作。