我在导航到第一个视图到第二个视图时隐藏我的标签栏但是如何在从第二个视图弹出到第一个视图时将其显示回来
在第一个视图中
-(IBAction)gotoSecondView{
VideoDetailViewController *vdoDtlPage = [[VideoDetailViewController alloc]initWithNibName:@"VideoDetailViewController" bundle:nil];
self.hidesBottomBarWhenPushed=YES;
[self.navigationController pushViewController:vdoDtlPage animated:YES];
}
从第二个视图
-(IBAction)back:(id)sender{
self.hidesBottomBarWhenPushed=NO;
[self.navigationController popViewControllerAnimated:YES];
}
答案 0 :(得分:0)
一种选择是使用NSNotificationCenter
在这里查看答案IOS: Move back two views
基本上,当您解除查看该通知的视图VideoDetailViewController
并且它运行方法时,您可以向父视图控制器添加通知方法
-(IBAction)back:(id)sender{
[self.navigationController popViewControllerAnimated:YES];
[[NSNotificationCenter defaultCenter] postNotificationName:@"showTabBar" object:nil];
}
然后您的父视图控制器中的相关方法运行
- (void)showTabBar:(NSNotification *)notif
{
NSLog(@"Received Notification ");
self.hidesBottomBarWhenPushed=NO;
}
答案 1 :(得分:0)
self.hidesBottom ...使navigationController隐藏底栏,而设置的VC位于堆栈上
所以不要将其隐藏在root中,而是将其隐藏为vdoDtlPage
-(IBAction)gotoSecondView{
VideoDetailViewController *vdoDtlPage = [[VideoDetailViewController alloc]initWithNibName:@"VideoDetailViewController" bundle:nil];
vdoDtlPage.hidesBottomBarWhenPushed=YES;
[self.navigationController pushViewController:vdoDtlPage animated:YES];
}
然后,当你弹出第二个视图时,firstViews再次成为顶级VC,因为它有hidesBottomBar = No,导航控制器将再次在栏中设置动画