项目中用到TabBar作主界面框架。NavBar用在分页面中的跳转。
在跳转目的页面上,使用btn的事件,可以实现正常跳转及navBar与TabBar的正常显示与隐藏,但是NavBar上的返回按钮就不好写了。
在网上查找资料,需要使用到UINavigationControllerDelegate实现在POP后执行一些控制代码。
-(void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated{
if([viewController isEqual:self]){
NSLog(@"跳转到自己,显示NavBar,隐藏TabBar");
[self.tabBarController.tabBar setHidden:YES];
[self.navigationController setNavigationBarHidden:NO animated:NO];
//[self.navigationController setNavigationBarHidden:YES animated:YES];
}else{
self.navigationController.delegate = nil;
[viewController.tabBarController.tabBar setHidden:NO];
[navigationController setNavigationBarHidden:YES animated:YES];
//self.navigationController.delegate = viewController;
NSLog(@"跳转回去,显示TabBar,隐藏NavBar");
}
}
注意:在跳转回上级页面时,tabBar与navBar要使用参数中的对象,如果还是使用self的话将不能正确显示结果。