Est-ce votre UISplitViewController
le contrôleur de vue racine? Il peut montrer un comportement étrange sinon. Par pomme:
Remarque
» ... Bien qu'il soit possible d'installer un contrôleur de vue partagé comme un enfant dans d'autres contrôleurs de vue de conteneurs, faire n'est pas recommandé dans la plupart des cas contrôleurs de vue fendus sont. normalement installé à la racine de la fenêtre de votre application. ... »
Je l'ai utilisé ce (appelé du contrôleur de vue de détail, à l'aide du contrôleur Scinder avec deux contrôleurs nav.) A ce stade, je voulais réinitialiser les piles de nav:
let firstVC = self.storyboard?.instantiateViewController(withIdentifier: "FirstViewController") as! FirstViewController
let secondVC = self.storyboard?.instantiateViewController(withIdentifier: "SecondViewController") as! SecondViewController
// Get a reference the the Master View nav controller
let masterNav = self.splitViewController!.viewControllers[0] as! UINavigationController
// Set desired VC's as nav stack RootViewControllers
self.navigationController?.setViewControllers([matchVC], animated: true)
masterNav.setViewControllers([masterMatchTableView], animated: true)
Vous pouvez appeler à la place .pushViewController
sur les deux contrôleurs de navigation, si vous voulez maintenir la pile de navigation.
Si vous travaillez toujours à ce sujet, un peu de code et je serais heureux de jeter un coup d'oeil.
modifier:
Donc, vous ne pouvez pas présenter un contrôleur modalement Scinder: https://developer.apple.com/library/content/documentation/WindowsViews/Conceptual/ViewControllerCatalog/Chapters/SplitViewControllers.html
Un contrôleur de vue partagé doit toujours être la racine de toute interface que vous créez. En d'autres termes, vous devez toujours installer la vue à partir d'un objet UISplitViewController en tant que vue racine de la fenêtre de votre application. Les volets de votre interface de vue éclatée peuvent alors contenir des contrôleurs de navigation, des contrôleurs de barre d'onglets ou tout autre type de contrôleur de vue dont vous avez besoin pour implémenter votre interface. Les contrôleurs de vue partagée ne peuvent pas être présentés de manière modale.
L'extrait de code que j'ai posté ci-dessus présente à la fois les vues principale et détaillée. Vous pouvez également présenter un nouveau conteneur virtuel en tant que vue détaillée et définir le UISplitViewController.preferredDisplayMode = .primaryHidden
pour présenter de manière modale un seul conteneur virtuel.
Existe-t-il un moyen de présenter le SplitViewController (de manière modale ou par poussée) avec un arrière-plan transparent? J'ai besoin que le VC principal et le détail VC soient transparents. – Oded