J'ai une application universelle et sur la version iPad, j'utilise UISplitViewController
pour créer une interface similaire à l'application Mail.
J'avais du mal à créer de nouvelles vues de détail. J'ai donc décidé d'utiliser un UINavigationController
afin de pouvoir simplement afficher et afficher des vues au besoin. Cependant, je ne souhaite pas utiliser la vue de navigation ou une barre d'outils. Mais peu importe ce que je fais, je ne peux pas cacher la barre de navigation.
J'ai essayé de décocher "Affiche la barre de navigation" dans IB et j'ai également essayé de régler:
[self.navigationController setNavigationBarHidden:YES];
dans le viewDidLoad
/viewDidAppear
/viewWillAppear
. Je l'ai également essayé dans chacune des vues qui seront poussées. Rien ne fonctionne.
Y a-t-il quelque chose qui me manque ici? Est-il possible d'avoir un UINavigationController
sans barre d'outils ni barre de navigation?
Vous devriez pouvoir faire ce qui suit:
self.navigationController.navigationBar.hidden = YES;
où self.navigationController est (évidemment) une instance de UINavigationController. Cela semble fonctionner pour moi, mais je ne l'ai que brièvement testé avant de poster ceci.
Si vous ne voulez pas de barre de navigation et que vous souhaitez que le contenu soit ajusté à l'emplacement normal de la barre de navigation, vous devez utiliser
self.navigationController.navigationBarHidden = YES;
Cela vous donne un résultat comme celui-ci:
Tandis que self.navigationController.navigationBar.hidden = YES;
vous donne un espace où la barre de navigation devrait être. Comme ça:
Dans Xcode 4.3.2:
Dans la catégorie Contrôleur de navigation, vous avez deux cases à cocher:
[] Affiche la barre de navigation
[] Affiche la barre d'outils
Travaillé pour moi ...
Swift 4
Je le cache en vueWillAppear
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.isNavigationBarHidden = true;
}
Ensuite, vous pouvez le remettre lorsque vous appuyez sur une séquence (si vous voulez avoir le bouton de retour sur la vue suivante)
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
{
self.navigationController?.isNavigationBarHidden = false;
}
self.navigationController.isNavigationBarHidden = true
ou
self.navigationController.navigationBar.isHidden = true
Remarque: je n'ai pas vu de différence entre ces deux approches en test sur iOS 10.