首页 文章

如何在没有导航栏的View Controller内部使用Nav推送UIViewController

提问于
浏览
0

我正在以模态方式显示UINavigationController . 对于根视图控制器,我不想显示导航栏 .

但是对于更深层的控制器,我确实希望展示它 .

我在我的根视图控制器中做了类似的事情:

-(void) viewWillAppear:(BOOL)animated
{
    [self.navigationController.navigationBar setHidden:YES];
}

-(void) viewWillDisappear:(BOOL)animated
{
    [self.navigationController.navigationBar setHidden:NO];
}

但是,当我从第一个视图控制器返回到根视图控制器时,这会出现问题 . 按下“后退”按钮(在第一个视图控制器内部,留下空白区域)后导航栏消失,而不仅仅是在rootViewController完成加载后 . (显然是因为我的代码使用了viewWillAppear)

有解决方案吗?

我唯一想到的是永久隐藏导航栏,并手动将导航栏添加到堆栈中的每个视图控制器 . 我希望不要这样做,因为它需要更多的工作,而且,我想使用箭头形状的按钮,我必须创建自定义图像 .

感谢任何建议 .

1 回答

  • 1

    这应该这样做,我没有测试过,但应该在理论上工作:

    - (void)viewWillAppear:(BOOL)animated
    {
        [super viewWillAppear:animated];
        [self.navigationController setNavigationBarHidden:YES animated:YES];
    }
    
    - (void)viewWillDisappear:(BOOL)animated
    {
        [super viewWillDisappear:animated];
        [self.navigationController setNavigationBarHidden:NO animated:YES];
    }
    

相关问题