0

J'utilise un contrôleur de barre d'onglets qui contient 5 onglets. Dans la tab1 j'ai un bouton qui m'amène à mon tab2. Cet onglet2 est intégré dans un contrôleur de navigation.Comment faire pour supprimer TabBar d'un contrôleur si entrant d'un autre onglet par segue?

Alors, comment puis-je rendre la barre d'onglets cachée dans l'onglet 2 quand je viens de tab1 par segue?

Dans le scénario, j'ai un Hide Bottom bar on push activé. Aussi, j'ai écrit self.tabBarController?.tabBar.isHidden = true en vue a fait charger de tab2. Dans mon tab1 prepareForSegue est comme ça

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 

    if segue.identifier == "ShortcutSegue" { 

     let tabVc = segue.destination as! UITabBarController 
     tabVc.selectedIndex = 1 
     tabVc.tabBarController?.tabBar.isHidden = true 
    }   
} 

Répondre

0

Pour le contrôleur de vue tab2, vous pouvez écrire le code ci-dessous pour cacher la barre d'onglets.

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if let destinationTabBar = segue.destinationViewController as? UITabBarController { 
    if segue.identifier == "ShortcutSegue" { 
     destinationTabBar.viewControllers?.removeAtIndex(adminScreenIndex) 
    } 
    } 
} 

Ou vous pouvez écrire le code ci-dessous dans votre méthode funcForSegue de remplacement.

if let tabVc = segue.destinationViewController as? tab2ViewController { 
    tabVc.hidesBottomBarWhenPushed = true 
} 

Ou vous pouvez cocher la case « Cacher la barre de bouton Push » dans le story-board principale dans l'inspecteur des attributs du contrôleur de vue de la barre d'onglet indiqué dans l'image ci-dessous.

Main storyboard attribute inspector "Hide Button Bar On Push"

+0

Cela ne fonctionne pas. La première solution ne peut pas être placée dans le contrôleur tab2 car Tab2 est mon VC de destination. la deuxième solution n'a aucun effet. La troisième solution a déjà été faite avant de poser la question. – Mayur