10

Ich habe eine tabBar + NavigationViewController. Die Tab bar hat Auflistungsansicht mit Zellen (Say view1) und mit den Zellen ein Push seague wird in einer anderen Ansicht implementiert (Say view2).Tableiste ausblenden in Sicht mit Push

In view2 Ich möchte ein navBar haben, aber keine Tab-Leiste.

versuchte ich

self.tabBarController?.tabBar.hidden = true,

es funktionierte gut für view2 aber als ich ging zurück zu view1 von Zurück-Taste die Registerkarte wurde noch versteckt (auch nach dem in view1 Klasse I hinzugefügt self.tabBarController?.tabBar.hidden = false in viewDidLoad func).

Wie kann ich die Tab-Leiste machen in view1 wieder auftauchen?

Ich arbeite in swift.

Antwort

19

Im viewDidload stellen Sie die UIViewController hidesBottomBarWhenPushed auf yes:

self.hidesBottomBarWhenPushed = YES; 

diese Weise wird die UINavigationController kümmert die Tab-Leiste verstecken.

+0

hatte ich schon das in Code in „View2 hinzugefügt "Klasse Spaß viewDidLoad aber es funktioniert nicht ...Gibt es einen anderen Weg –

+0

sorry..the Code wurde in View2 geschrieben, so dass es nicht funktionierte ... Jetzt habe ich den Code in View1 Klasse verschoben und die Registerkarte wird in View2 versteckt, aber wenn ich wieder zu View1 gehe es nicht angezeigt werden .. –

+0

danke es begann jetzt zu arbeiten..danke viel –

19

Verwendung in 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

Das ist die einzige Antwort, die für mich funktioniert hat. –

16

Bruno Fernandes Antwort in Swift:

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

Dies war die Antwort, die für mich gearbeitet. Putting hidesBottomBarWhenPushed in der viewDidLoad Methode hat nicht funktioniert.

Danke Bruno!

+0

Typo, Controller sollte sein: 'destinationController.hidesBottomBarWhenPushed = true' –

+0

Fixed it. Danke, dass du auf Arthur hingewiesen hast. –

+0

Das sollte die richtige Antwort sein, danke! –

12

enter image description here

Versuchen Sie, diese auf dem Controller zu überprüfen!

0

wenn Sie wollen TabBarController Bottom Bar verstecken: #Swift 3

In YourViewController: in ViewDidLoad() -Methode

self.tabBarController?.tabBar.isHidden = false