我正在使用以下代码为我的UINavigationBar
和UIToolbar
设置自定义图像:
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navigationBar"] forBarMetrics:UIBarMetricsDefault];
[[UIToolbar appearance] setBackgroundImage:[UIImage imageNamed:@"toolbar"] forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
我正在使用PhotoViewer并将其视图控制器推入视图。 它应该有半透明的导航栏和工具栏,但它使用我提供的带有半透明度的图形。
问题在于,稍后当我推入另一个视图控制器(从PhotoViewer弹回到super后),它的工具栏也是半透明的,这意味着内容位于其后面。
我尝试了以下方法但没有成功:
[[UINavigationBar appearanceWhenContainedIn:[EGOPhotoViewController class], nil] setBarStyle:UIBarStyleBlackTranslucent];
[[UINavigationBar appearanceWhenContainedIn:[EGOPhotoViewController class], nil] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
[[UIToolbar appearanceWhenContainedIn:[EGOPhotoViewController class], nil] setBarStyle:UIBarStyleBlackTranslucent];
[[UIToolbar appearanceWhenContainedIn:[EGOPhotoViewController class], nil] setBackgroundImage:nil forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
有没有想法帮我实现在PhotoViewer中仅为black translucent barStyle设置自定义图形,而保留其他全部内容?
更新:为了获得一些帮助,我已经编写了一个示例项目,其中使用外观代理无法成功显示带有半透明导航栏的推出视图控制器,并设置了自定义导航栏图形:EXAMPLE PROJECT
UITabBarController
。 - runmadviewWillDisappear
上将其设置回原始样式。我还尝试在超级视图控制器以及在PhotoViewer之后推送的视图控制器中将其设置为默认值,但都没有起作用。此外,我甚至没有看到默认的黑色半透明样式,而是我的导航栏和工具栏自己的图形,带有一些半透明效果 - 这不是我要寻找的效果。 - runmad