ios - 如何从不同的 View Controller 更改导航栏图像

标签 ios objective-c uiviewcontroller uinavigationbar

以前,当我只需要 1 个导航栏图像时,我会这样做

UIImage *navBarImage = [UIImage imageNamed:@"navbarimage.png"];
[[UINavigationBar appearance]setBackgroundImage:navBarImage forBarMetrics:UIBarMetricsDefault];

在 AppDelegate 中,并且它将保留在整个应用程序中。

但是,现在我需要在从 Root View 转到 TableView 时更改导航栏图像。 我尝试把

    UIImage *navBarImage = [UIImage imageNamed:@"vybeNavBarEmpty.png"];
[[UINavigationBar appearance]setBackgroundImage:navBarImage forBarMetrics:UIBarMetricsDefault];

在我的 tableview 类的 viewwillappear 中,但没有任何变化。

知道如何做到这一点吗?

最佳答案

尝试使用以下代码:

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"vybeNavBarEmpty.png"] forBarMetrics:UIBarMetricsDefault];

关于ios - 如何从不同的 View Controller 更改导航栏图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20344250/

相关文章:

ios - 如何从 UIImagePickerController 获取授权的 PHAsset?

ios - 如何在 ruby​​motion 中为 UIView 创建拆分背景色

ios - 界面生成器中的未知类

ios - 将两个 UIImage 并排保存为一个组合图像?

ios - Quickblox 中的 Apple mach-o 链接器错误

objective-c - iOS 钥匙串(keychain),存储更多 kSecValueData 项

ios - 在方法内部或调用该方法时使用 dispatch_async()

ios - 如何在不使用 segue 的情况下传递数据

iphone - 在选定的选项卡栏项目上点击两次隐藏当前 View Controller

ios - 出现新 Controller 后 Controller 不会取消初始化