首页 文章

导航栏的iOS异常行为

提问于
浏览
0

我有一个表格视图A,它被视为一个视图B.在A中,顶部有一个导航栏,下面是表格 . 当我按下A表中的一行时,B被按下 . 在B的viewWillAppear中,我有以下代码 .

-(void)viewWillAppear:(BOOL)animated
{
    self.wantsFullScreenLayout = YES;
    [self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
    self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;
}

这使得扩展视图,以便在状态栏下方,我有导航栏和UIView重叠 . 我也有viewWillDisappear

-(void)viewWillDisappear:(BOOL)animated
{
    if ([self.navigationController.viewControllers indexOfObject:self]==NSNotFound) {
        // back button was pressed.  We know this is true because self is no longer in the navigation stack.

        self.wantsFullScreenLayout = NO;
        [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navigationbar_bg.png"] forBarMetrics:UIBarMetricsDefault];
        self.navigationController.navigationBar.translucent = NO;
    }
}

因此,当用户按下后退按钮时,它将撤消全屏模式,以便视图和导航栏不会重叠 . 问题是,当我按下后退按钮并显示前一个屏幕A时,奇怪的是表格视图仍然显示与导航栏重叠 . 我甚至试图在A的willViewAppear中放置self.wantsFullScreenLayout = NO,但无济于事 . 不应缩小桌面视图并位于导航栏下?谁能让我知道什么是狼人以及如何解决这个问题?

提前致谢!

1 回答

  • 0

    而不是将代码放在 viewWillDisappear 方法中,尝试将相同的代码放在前一个视图控制器的 viewWillAppear 方法中 .

相关问题