У меня есть представления с панелью навигации и панель вкладок. То, что я хотел бы сделать, - это скрыть панель вкладок на определенном представлении и снова показать панель вкладок, когда пользователь меняет представления.
Я увидел фрагмент кода для скрытия панели вкладок:
-(void)makeTabBarHidden:(BOOL)hide
{
// Custom code to hide TabBar
if ( [tabBarController.view.subviews count] < 2 ) {
return;
}
UIView *contentView;
if ( [[tabBarController.view.subviews objectAtIndex:0] isKindOfClass:[UITabBar class]] ) {
contentView = [tabBarController.view.subviews objectAtIndex:1];
} else {
contentView = [tabBarController.view.subviews objectAtIndex:0];
}
if (hide) {
contentView.frame = tabBarController.view.bounds;
}
else {
contentView.frame = CGRectMake(tabBarController.view.bounds.origin.x,
tabBarController.view.bounds.origin.y,
tabBarController.view.bounds.size.width,
tabBarController.view.bounds.size.height - tabBarController.tabBar.frame.size.height);
}
tabBarController.tabBar.hidden = hide;
}
from: http://nickwaynik.com/iphone/hide-tabbar-in-an-ios-app/
Я вызываю это в представлении, в котором я хочу, чтобы панель вкладок была скрыта
[self makeTabBarHidden:YES];
он отлично работает, когда я показываю/скрываю его в этом представлении, но когда я перехожу назад к предыдущему виду, панель вкладок также скрыта. Я попытался вызвать эту функцию в представлении viewDidUnload, viewWillDisappear, viewDidDisappear, но ничего не происходит. То же самое верно, когда функция вызывается в предыдущем представлении viewDidLoad, viewWillAppear, функции viewDidAppear.