0

我在 NavigationController 中嵌入了一个 ViewController,我自定义了 NavigationBar(更改代码中的背景图像),当我单击一个按钮时,它会将用户正确引导到另一个视图。但是,当我到达这个视图时,我无法更改 NavBar 的图像......我试着写这个:

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

在 IBAction 方法中,在我的主 ViewController 的 ViewDidUnload 和我的另一个 ViewController 的 ViewDidLoad 和 initWithNibName 中,但没有任何改变以前的图像。我能做些什么 ?

我的 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];
}

非常感谢任何建议

4

3 回答 3

1

非常愚蠢的问题(又名,“您是否尝试将其关闭再打开?”):

您是如何从“嵌入式视图”过渡到第二个视图的?它应该看起来像这样:

[self.navigationController pushViewController:detailViewController animated:YES];

如果不是,那么self.navigationController在您的第二种观点中不会指出任何有用的东西。

问候,克里斯

于 2012-05-25T11:08:51.433 回答
1

在你的第一个视图控制器中试试这个:

[[UINavigationBar appearance] setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
于 2012-05-25T11:15:38.723 回答
1

好吧,如果有人对解决方案感兴趣,我只需要使用它来解决问题:

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

这是根据我们想要的添加 viewDidAppear/Disappear 方法。

于 2012-05-25T19:24:04.483 回答