10

У меня есть tabBar + NavigationViewController. Строка Tab имеет вид коллекции с ячейками (Say view1) и с клетками толчок seague реализован другой точке зрения (Say view2).скрыть панель вкладок в поле зрения с нажатием

В View2 Я хочу, чтобы иметь navBar но нет панели вкладок.

Я попытался

self.tabBarController?.tabBar.hidden = true,

он работал отлично для view2, но когда я вернулся в view1 на кнопку назад вкладка была еще скрыта (даже после того, как в вид1 класс I добавлен self.tabBarController?.tabBar.hidden = false в viewDidLoad func).

Как я могу заставить панель полосок снова появиться в view1?

Я работаю быстро.

ответ

19

В viewDidload установить UIViewController hidesBottomBarWhenPushed к да:

self.hidesBottomBarWhenPushed = YES; 

Таким образом UINavigationController ухаживает скрывает панель вкладок.

+0

Я уже добавил это в коде в «View2 "класс fun viewDidLoad, но его не работает ...есть ли какой-либо другой способ –

+0

извините .. код был написан в View2, поэтому он не работал ... Теперь я переместил код в класс view1, а вкладка скрыта в View2, но снова, когда я вернусь к view1, он не получите отображаемое сообщение. –

+0

спасибо, что он начал работать сейчас .. спасибо много –

19

Использование в 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; 
}} 

=) Ответ

+0

Это единственный ответ, который сработал для меня. –

16

Бруно Фернандеса в Swift:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if segue.identifier == "YourSegueIdentifier" { 
     let destinationController = segue.destinationViewController as! YourViewController 
     destinationController.hidesBottomBarWhenPushed = true 
    } 
} 

Это был ответ, который работал для меня. Помещение hidesBottomBarWhenPushed в viewDidLoad способ не работал.

Спасибо, Бруно!

+0

Typo, контроллер должен быть: 'destinationController.hidesBottomBarWhenPushed = true' –

+0

Исправлено. Спасибо, что указали на Артура. –

+0

Это должен быть правильный ответ, спасибо! –

12

enter image description here

Попробуйте проверить это на геймпаде!

0

если вы хотите, чтобы скрыть TabBarController Bottom Bar: #Swift 3

В YourViewController: в методе ViewDidLoad()

self.tabBarController?.tabBar.isHidden = false 
Смежные вопросы