Ios UINavigationController,如何在第二级viewController中隐藏选项卡栏,然后在第三级viewController中显示选项卡栏

Ios UINavigationController,如何在第二级viewController中隐藏选项卡栏,然后在第三级viewController中显示选项卡栏,ios,Ios,这是我的一段代码,但这样,当我按下第三级视图控制器时,选项卡栏不会显示 //at first level SecondLevelViewController *_2vc = [[SecondLevelViewController alloc]initWithNibName:@"SecondLevelViewController" bundle:nil]; _2vc.hidesBottomBarWhenPushed = YES; [self.navigationController

这是我的一段代码,但这样,当我按下第三级视图控制器时,选项卡栏不会显示

//at first level
SecondLevelViewController *_2vc = [[SecondLevelViewController alloc]initWithNibName:@"SecondLevelViewController" bundle:nil];
    _2vc.hidesBottomBarWhenPushed = YES;
    [self.navigationController pushViewController:_2vc animated:YES];  

//at second level
ThirdLevelViewController *_3vc = [[ThirdLevelViewController alloc]initWithNibName:@"ThirdLevelViewController" bundle:nil];
    _3vc.hidesBottomBarWhenPushed = NO;
    [self.navigationController pushViewController:_3vc animated:YES];

在初始化视图控制器时,不应设置HidesBottomBar的值,而应在-(void)视图中处理隐藏机制,将在视图控制器中显示:(BOOL)动画

这种实施的一个例子是:

在SecondLevelViewController.m中

-(void)viewWillAppear:(BOOL)animated
{
   [_bottomBar setHidden:YES];
}
-(void)viewWillAppear:(BOOL)animated
{
   [_bottomBar setHidden:NO];
}
在ThirdLevelViewController.m中

-(void)viewWillAppear:(BOOL)animated
{
   [_bottomBar setHidden:YES];
}
-(void)viewWillAppear:(BOOL)animated
{
   [_bottomBar setHidden:NO];
}

在初始化视图控制器时,不应设置HidesBottomBar的值,而应在-(void)视图中处理隐藏机制,将在视图控制器中显示:(BOOL)动画

这种实施的一个例子是:

在SecondLevelViewController.m中

-(void)viewWillAppear:(BOOL)animated
{
   [_bottomBar setHidden:YES];
}
-(void)viewWillAppear:(BOOL)animated
{
   [_bottomBar setHidden:NO];
}
在ThirdLevelViewController.m中

-(void)viewWillAppear:(BOOL)animated
{
   [_bottomBar setHidden:YES];
}
-(void)viewWillAppear:(BOOL)animated
{
   [_bottomBar setHidden:NO];
}

我假设代码的第一位应该封装在
viewDidLoad
方法中?另外,你能解释一下这里发生了什么吗?我假设第一位代码应该封装在
viewDidLoad
方法中?另外,你能解释一下这里发生了什么吗?这很有效。但是我想知道为什么在按下第三级视图控制器时,将hidesBottomBarWhenPushed属性设置为NO不起作用?我假设hidesBottomBarWhenPushed是一个BOOL变量NO?如果它只是一个bool变量,则不能指望它自己隐藏/显示视图。您需要在视图控制器中的某个位置实现隐藏/显示代码。在本例中,我在viewwillappease方法中设置了隐藏/显示代码。它可以工作。但是我想知道为什么在按下第三级视图控制器时,将hidesBottomBarWhenPushed属性设置为NO不起作用?我假设hidesBottomBarWhenPushed是一个BOOL变量NO?如果它只是一个bool变量,则不能指望它自己隐藏/显示视图。您需要在视图控制器中的某个位置实现隐藏/显示代码。在本例中,我在viewWillExample方法中设置了隐藏/显示代码。