我在iOS 8中遇到了这个问题,在其中任何一种情况下都会显示导航栏的错误背景图像:
YES
(默认值),并对导航控制器进行建模。NO
,状态栏最初是隐藏的。在这种情况下,导航控制器不需要以模态方式显示错误的图像。为了隔离基于视图控制器的状态栏外观设置为YES (默认)和导航控制器的问题,我按照以下步骤从头创建了一个测试项目:
Main.storyboard
并向其添加一个导航控制器。移除其根视图控制器,并将主视图控制器与模式segue连接。然后连接细节视图控制器作为其根视图控制器。你应该得到这样的结果:
UIBarMetricsDefault
)和景观(UIBarMetricsCompact
)。我在UIImage
上使用了一个类别来创建来自纯色的图像。
还有其他人为这件事而挣扎吗?
发布于 2014-10-27 03:36:30
是的,我一直在努力解决这个问题,在目标的plist文件中添加了"View controller-based status bar appearance"
之后,它再次在iOS 8上工作,记住将它设置为NO
。
在MasterViewController中,添加这一点以避免在detailViewController被取消时出现错误的背景图像。它基本上又重新设定了相同的外观。
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageWithColor:[UIColor redColor]] forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageWithColor:[UIColor blueColor]] forBarMetrics:UIBarMetricsCompact];
}
https://stackoverflow.com/questions/26575546
复制相似问题