如何从不同的视图控制器更改导航栏图像

Posted

技术标签:

【中文标题】如何从不同的视图控制器更改导航栏图像【英文标题】:How to change NavBar Image from different View Controller 【发布时间】:2013-12-03 06:22:23 【问题描述】:

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

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

在 AppDelegate 中,这将保留在整个应用程序中。

但是,现在我需要在从 rootview 转到 tableview 时更改导航栏图像。 我试着把

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

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

知道怎么做吗?

【问题讨论】:

从 rootview 转到 tableview 时检查该代码是否正在执行 @Tendulkar 代码正在执行中 尝试使用 self.navigationcontroller.navigationbar 而不是 UINavigationBar 【参考方案1】:

试试下面的代码:

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

【讨论】:

【参考方案2】:

试试这个:

 [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"newImage.png"]];

【讨论】:

以上是关于如何从不同的视图控制器更改导航栏图像的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iPhone 的 Three20 Thumbs 视图控制器中更改导航栏样式?

如何更改模态视图 iOS 6 上的状态栏

在Swift中的导航栏中设置图像

如何更改视图控制器中可访问性元素的顺序而不会失去对导航栏的访问权限?

使用 UIAppearance 在更改后更新导航栏

更改 iOS 窗口的根视图控制器