【问题标题】:display slitly red color bar when push the view when navigation bar is hidden隐藏导航栏时推送视图时显示狭长的红色条
【发布时间】:2014-12-30 10:05:28
【问题描述】:

在我的应用程序中,导航栏是隐藏的,当我推送到另一个视图时,当推送视图动画完成时,我会看到顶部略带红色的颜色栏也被删除。

我在推送查看之前隐藏导航控制器

[[self navigationController] setNavigationBarHidden:YES animated:NO];

如果我将此代码放在 viewdidload 方法中,那么也会显示红色条

例如: 查看控制器 A:

-(void)viewDidload
{
    [[self navigationController] setNavigationBarHidden:YES animated:NO];
}

-(IBAction)pushtoView:(id)sender
{
   ViewContolB *obj =[[ViewContolB alloc]initWithNibName:@"ViewContolB" bundle:nil];
    [self.navigationController pushViewController:obj animated:YES];
}

【问题讨论】:

  • [[self navigationController] setNavigationBarHidden:YES Animation:NO];在你的 ViewContolB viewDidLoad.
  • @DheerajSingh 感谢重播.. 如果我从 appDelegate 中隐藏并且不再要求显示,那么它也会显示..
  • 试试这个:在 ViewControlB 中,在 viewDidLoad 添加这一行:self.view.backgroundColor = [UIColor whiteColor];
  • @OnikIV 也试试,但同样的问题...

标签: ios objective-c iphone


【解决方案1】:

您是使用背景图片还是淡色来设置导航栏的背景?

如果您使用背景图片(听起来像是因为您有纯灰色背景),您需要确保它的高度为 64 点(视网膜中为 128 像素)。如果您使用旧的 iOS 6 尺寸(44 磅),iOS 7 将退回并且不包含状态栏。

有关此行为的详细信息,请查看 iOS 7 过渡文档中的表 5-1,“屏幕顶部条的可调整大小背景图像的处理”。

另外,如果是这种情况,您不需要设置 edgesForExtendedLayout、extendedLayoutIncludesOpaqueBars 和基于视图控制器的状态栏外观。您可能需要它来处理其他事情 - 但不是为了这个。

如果您想仍然支持 iOS 6,则需要有两个不同的背景图像,一个是 iOS 7 及更高版本,一个是 iOS 6 及更低版本的旧版本。这应该会得到你想要的效果。

【讨论】:

    猜你喜欢
    • 2014-11-10
    • 2019-03-12
    • 1970-01-01
    • 2011-05-30
    • 2020-08-27
    • 2016-03-29
    • 2011-11-07
    • 2015-01-26
    • 1970-01-01
    相关资源
    最近更新 更多