推送到下一个viewController时导航栏消失

时间:2013-09-18 05:08:32

标签: ios objective-c

目前我的应用程序的主页隐藏了导航栏;但是,每当我尝试将该控制器推送到下一个viewController时,它也会隐藏该导航栏。我目前有这个视图控制器没有导航栏:

[self.navigationController pushViewController: mapView animated:YES];

每当推到下一个时,它就不再有了。下一个viewController的导航栏位于viewWillAppear方法中,因此它应该显示出来。有什么想法吗?

解答:

如果您在ViewController中隐藏导航栏并希望在下一个中显示它,请使用以下代码:

someVC *VC = [[someVC alloc] init];
self.navigationController.navigationBarHidden=NO;
[self.navigationController pushViewController: VC animated:YES];

@ LithuT.V和@Tendulkar谢谢!

4 个答案:

答案 0 :(得分:8)

将此代码写入mapView的ViewDidload方法

[self.navigationController.navigationBar setHidden:NO];

答案 1 :(得分:2)

我花了两个小时试图在从不同故事板推送的视图控制器上显示我的导航栏。

请注意,主故事板中只需要一个导航控制器,然后导航栏消失的视图控制器会隐藏它并通过以下代码再次显示。

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

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

答案 2 :(得分:1)

我猜您正在从故事板隐藏导航栏,请尝试以下代码:

//Show navigationBar for a particular VC

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

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

答案 3 :(得分:0)

在您的下一个viewControllers self.navigationController.navigationBarHidden = NO;方法中添加-(void)viewWillAppear:(BOOL)animated

这将显示viewController的导航栏