当我更改UIView时我的NavigationBar不
问题描述:
我有一个ViewController嵌入在NavigationController中,我自定义NavigationBar(更改代码中的背景图像),当我点击一个按钮时,它将用户导向另一个视图正确。但是,我无法改变的NavBar的形象,当我到达这个观点...... 我试着写:当我更改UIView时我的NavigationBar不
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"otherBackground.png"] forBarMetrics:UIBarMetricsDefault];
在IBAction为方法,在我的主视图控制器的ViewDidUnload和viewDidLoad中和initWithNibName我的其他ViewController,但没有任何更改前一个图像。我能做什么 ?
我IBAction为如下:
- (IBAction) versModeEmploi : (id) sender
{
if(!modeEmploi) modeEmploi = [[ModeEmploiController alloc] initWithNibName:@"ModeEmploiController" bundle:nil];
UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Retour" style:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationItem.backBarButtonItem = backBarButtonItem;
[self.navigationController pushViewController:modeEmploi animated:NO];
}
非常感谢您的任何意见
答
在你的第一个视图控制器试试这个:
[[UINavigationBar appearance] setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
答
非常愚蠢的问题(又名:“你试图将其关闭并重新开启?”):
你是如何从“嵌入式视图”转换到第二种视图的?它应该是这个样子:
[self.navigationController pushViewController:detailViewController animated:YES];
如果没有,那么self.navigationController
不会指向有用的东西在你的第二个观点。
的问候, 克里斯
+0
看看我的主要帖子上的编辑,非常感谢您的回答! – Rob
答
那么,如果有人有兴趣的解决方案,我只是用这个来解决这个问题:
[self.navigationController.navigationBar setNeedsDisplay];
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"nav.png"] forBarMetrics:UIBarMetricsDefault];
这是添加viewDidAppear/Disappear方法取决于我们想要的。
我试过了,但它不起作用......而且我注意到一件奇怪的事情。在我看来,navigationBar属性发生了变化,但没有重新绘制。因为我的主视图中还有一个“黑暗信息”按钮(这是您在创建新的实用程序应用时默认的配置),当我点击它时,主视图会翻转到另一个,当我来回到主视图导航栏背景已经改变... – Rob
对不起,想法不明:-( – Chris
我几乎完成这个问题!我使用setNeedsDisplay方法,它的工作原理。几乎。我只是面对一个我的BackBarButton重绘最初的导航栏的小问题。 – Rob