Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 当我更改UIView时,我的导航栏不会';T_Objective C_Ios_Uinavigationcontroller_Uinavigationbar_Background Image - Fatal编程技术网

Objective c 当我更改UIView时,我的导航栏不会';T

Objective c 当我更改UIView时,我的导航栏不会';T,objective-c,ios,uinavigationcontroller,uinavigationbar,background-image,Objective C,Ios,Uinavigationcontroller,Uinavigationbar,Background Image,我在NavigationController中嵌入了一个ViewController,我自定义了NavigationBar(更改代码中的背景图像),当我单击按钮时,它会将用户正确地引导到另一个视图。但是,当我看到这个视图时,我无法更改导航栏的图像。。。 我试着写下: [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"otherBackground.png"] forBarMetric

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

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"otherBackground.png"] forBarMetrics:UIBarMetricsDefault];
在iAction方法中,在我的主ViewController的ViewDidUnload中,在另一个ViewController的ViewDidLoad和initWithNibName中,但不会更改上一个图像。我能做什么

我的行动如下:

- (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];
}
非常感谢您提供的任何建议

非常愚蠢的问题(也就是“您是否尝试关闭并再次打开它?”):

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

[self.navigationController pushViewController:detailViewController animated:YES];
如果没有,那么在第二个视图中,
self.navigationController
将不会指向任何有用的内容

问候,, 克里斯

一个非常愚蠢的问题(也就是“你有没有试着把它关掉再打开?”):

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

[self.navigationController pushViewController:detailViewController animated:YES];
如果没有,那么在第二个视图中,
self.navigationController
将不会指向任何有用的内容

问候,,
Chris

在第一个视图控制器中尝试以下操作:

[[UINavigationBar appearance] setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];

在第一个视图控制器中尝试以下操作:

[[UINavigationBar appearance] setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];

如果有人对这个解决方案感兴趣,我只能用这个来解决这个问题:

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

这是根据我们的需要添加ViewDidAspect/English方法。

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

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

这是根据我们的需要添加ViewDidAspect/English方法。

查看我在主要帖子上的编辑,非常感谢您的回答!看看我在我的主要帖子上的编辑,非常感谢你的回答!我试过了,但没用。。。我注意到一件奇怪的事。在我看来,navigationBar属性会更改,但不会重新绘制。因为我的主视图上也有一个小的“暗信息”按钮(这是在创建新的实用程序应用程序时默认的配置),当我点击它时,主视图会翻转到另一个,当我回到主视图时,导航栏背景已经改变了…我几乎解决了这个问题!我使用setNeedsDisplay方法,它可以工作。几乎。我只是在重新绘制初始导航栏时遇到了一个小问题。我试过了,但不起作用。。。我注意到一件奇怪的事。在我看来,navigationBar属性会更改,但不会重新绘制。因为我的主视图上也有一个小的“暗信息”按钮(这是在创建新的实用程序应用程序时默认的配置),当我点击它时,主视图会翻转到另一个,当我回到主视图时,导航栏背景已经改变了…我几乎解决了这个问题!我使用setNeedsDisplay方法,它可以工作。几乎。我只是面临着一个小问题,我的BackBarButton重新绘制初始导航栏。