UINavigationController – 在所有视图中保留背景图像

可能重复:
iOS 5中的UINavigationBar外观覆盖

有没有办法让导航控制器中的所有视图背景图像保持不变? 目前我在每个视图的viewDidLoad方法中加载相同的背景,但是这显示了从视图导航到视图时的背景图像移动。 我宁愿只是在背景的“幻灯片”视图infront的内容/closures屏幕,但背景保持静止。 这是我目前的背景图片加载代码:

 UIImageView *background = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)]; background.image = [UIImage imageNamed:@"InfoBackground.png"]; [self.view addSubview:background]; [self.view sendSubviewToBack:background]; [background release]; 

谢谢!

嗯,也许如果你看看文档 (向下滚动到图2),你会知道你在处理什么。 因为你正在为每个被推送到UINavigationController的视图控制器设置背景图像,所以你会得到这个animation。 你需要做的是将背景图像设置到导航控制器本身。

我相信myNavController.view insertSubview:myImageView atIndex:0应该工作。 如果您的图像需要完全填充内容视图,则可以根据导航栏和工具栏的坐标和/或高度来设置框架坐标,这些坐标和/或高度可以通过导航控制器的属性进行访问。 如果没有,只需将框架设置为超视图的边界。

让我知道事情的后续。

编辑:哦,请注意,你需要确保你的每个视图控制器都有透明的背景。

我认为更好的想法是在窗口上放置背景图像,并将所有视图的(所有viewcontroller的视图)背景颜色设置为清除颜色[UIColor clearColor]

如果你想要静态的背景图像,那么只有一种方法,但我不知道这是可能的,如果我们把图像放在窗口中,并使导航控制器透明,那么它将保持静态无论你会做什么。 因为我们没有改变窗口,而推或stream行。

我只是build议尝试这种方式,我没有这样试过。