Ответ 1
В viewDidload
установите для параметра UIViewController hidesBottomBarWhenPushed
значение yes:
self.hidesBottomBarWhenPushed = YES;
Таким образом, UINavigationController
заботится о скрытии панели вкладок.
У меня есть tabBar
+ NavigationViewController
. Панель вкладок имеет представление коллекции с ячейками (Say view1), а с ячейками push seague реализуется в другом представлении (Say view2).
В view2 Я хочу иметь navBar
, но не панель вкладок.
Я пробовал
self.tabBarController?.tabBar.hidden = true
,
он отлично работал для view2, но когда я вернулся к view1 с помощью кнопки назад, вкладка все еще была скрыта (даже после > view1 класс я добавил self.tabBarController?.tabBar.hidden = false
в viewDidLoad func).
Как заставить панель вкладок снова появиться в view1?
Я работаю быстро.
В viewDidload
установите для параметра UIViewController hidesBottomBarWhenPushed
значение yes:
self.hidesBottomBarWhenPushed = YES;
Таким образом, UINavigationController
заботится о скрытии панели вкладок.
Использовать в prepareforsegue
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"showRecipeDetail"]) {
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
RecipeDetailViewController *destViewController = segue.destinationViewController;
destViewController.recipeName = [recipes objectAtIndex:indexPath.row];
// Hide bottom tab bar in the detail view
destViewController.hidesBottomBarWhenPushed = YES;
}}
=)
Бруно Фернандес отвечает в Свифте:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "YourSegueIdentifier" {
let destinationController = segue.destinationViewController as! YourViewController
destinationController.hidesBottomBarWhenPushed = true
}
}
Это был ответ, который работал у меня. Ввод hidesBottomBarWhenPushed
в метод viewDidLoad
не работал.
Спасибо Бруно!
Попробуйте проверить это на своем контроллере!
, если вы хотите скрыть панель нижней панели TabBarController: #Swift 3
В YourViewController: в методе ViewDidLoad()
self.tabBarController?.tabBar.isHidden = false