J'ai un UISplitViewController
intégré dans une vue conteneur (parce que ce n'est pas à la racine de mon application), dont la mécanique fonctionne bien, sauf pour un problème: La barre de navigation pour le vue de détail est manquant sur l'iPad.Barre de titre manquante dans la vue détaillée de UISplitViewController
configuration initiale est essentiellement comme suit:
- Dans IB, faites glisser un contrôleur Scinder sur le story-board, ce qui crée un contrôleur Scinder, un contrôleur de navigation, une table View Controller (Master), un Basic View Controller (Détail), et les liaisons les reliant.
- Ajoutez un contrôleur de vue standard avec une vue de conteneur. Créez une Segue intégrée depuis la vue Conteneur vers le contrôleur de vue partagée.
- Ajouter un autre Segue de la cellule prototype au détail View Controller, pris en charge par le code suivant dans le contrôleur maître:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.performSegue(withIdentifier: "showDetail", sender: nil)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showDetail" {
let destinationViewController = segue.destination as! DetailViewController
let path = self.tableView.indexPathForSelectedRow! as NSIndexPath
destinationViewController.selectedTrainingId = (self.itemList[path.row] as! MyListItem).id
}
}
- Ajouter les données
Chargement des éléments dans la vue principale et la sélection du détail fonctionnent.
Voici à quoi il ressemble dans IB (pour économiser l'espace que je montre la mise en page iPhone, mais les relations doivent être visibles de toute façon):
Il y a peu de réponses dans le traitement SO avec problèmes similaires. Les correspondances les plus proches suggèrent d'ajouter un propre contrôleur de navigation pour la vue détaillée. Je n'ai pas compris pourquoi cela serait nécessaire parce que le fait que cela fonctionne comme prévu sur l'iPhone, je crois, montre que la vue de détail utilise le même contrôleur de navigation que la vue maître (racine). Mais j'ai essayé. Le résultat est, comme je le soupçonnais, qu'au départ une barre de navigation est affichée. mais dès qu'un élément est sélectionné, la barre disparaît. Voici la configuration.
Dans de nombreuses applications (messagerie, e-mail, Skype, ...), vous pouvez voir des barres supérieures séparées pour les vues maître et détail. Tandis que techniquement mon application n'a absolument pas besoin des deux, elle n'est pas vraiment jolie surtout avec une barre colorée. Donc, la question est: Comment puis-je obtenir la barre de navigation pour la vue détaillée.