现在,我有
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed: @"UINavigationBarBackground.png"]
forBarMetrics:UIBarMetricsDefault];
我希望它能够在点击时更改背景。现在,它只在您重新启动应用程序后才会更改。有没有办法让它更改导航栏的背景图像而不必重新启动应用程序?
我试过
[[UINavigationBar appearance] setNeedsDisplay];
但它崩溃了:由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [NSMethodSignature getArgumentTypeAtIndex:]:index(2)超出范围[0,1]'
如果我尝试
[self.navigationController.navigationBar setNeedsDisplay];
或
[self.view setNeedsDisplay];
没有任何反应。
答案 0 :(得分:0)
UINavigationBar只是Apple在iOS中提供的另一个(但稍微特别)子类UIView,因此您应该能够在调整图像后立即使用"setNeedsDisplay
"强制进行更新。