首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >导航条背景图像错误

导航条背景图像错误
EN

Stack Overflow用户
提问于 2014-10-26 17:02:00
回答 1查看 1K关注 0票数 2

我在iOS 8中遇到了这个问题,在其中任何一种情况下都会显示导航栏的错误背景图像:

  • 将基于视图控制器的状态栏外观设置为YES (默认值),并对导航控制器进行建模。
  • 基于视图控制器的状态栏外观设置为NO,状态栏最初是隐藏的。在这种情况下,导航控制器不需要以模态方式显示错误的图像。

为了隔离基于视图控制器的状态栏外观设置为YES (默认)和导航控制器的问题,我按照以下步骤从头创建了一个测试项目:

  1. 使用“主细节应用程序”模板创建一个新项目。
  2. 打开Main.storyboard并向其添加一个导航控制器。移除其根视图控制器,并将主视图控制器与模式segue连接。然后连接细节视图控制器作为其根视图控制器。你应该得到这样的结果:

  1. 通过外观代理自定义导航条背景。使用两个不同的图像肖像(UIBarMetricsDefault)和景观(UIBarMetricsCompact)。我在UIImage上使用了一个类别来创建来自纯色的图像。

  • (BOOL)应用程序:(UIApplication*)应用程序didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //覆盖点,用于在应用程序启动后进行定制。[UINavigationBar出现setBackgroundImage:[UIImage imageWithColor:UIColor redColor] forBarMetrics:UIBarMetricsDefault];[UINavigationBar相貌setBackgroundImage:[UIImage imageWithColor:UIColor blueColor] forBarMetrics];返回是};

  1. 运行应用程序。主视图控制器显示用于纵向和景观方向的正确导航栏背景图像:

  1. 现在以模型方式呈现详细视图控制器。为此,点击“添加”按钮,然后选择新创建的行。详细视图控制器显示右侧导航栏背景图像。
  2. 旋转界面。详细视图控制器将而不是更改导航栏背景图像(错误):

  1. 将界面旋转回原来的方向。详细视图控制器将更改导航条背景图像(错误):

还有其他人为这件事而挣扎吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-27 11:36:30

是的,我一直在努力解决这个问题,在目标的plist文件中添加了"View controller-based status bar appearance"之后,它再次在iOS 8上工作,记住将它设置为NO

在MasterViewController中,添加这一点以避免在detailViewController被取消时出现错误的背景图像。它基本上又重新设定了相同的外观。

代码语言:javascript
运行
复制
- (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];
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26575546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档