2016-10-04 1 views
0

je dois présenter un modalement UISplitViewController (sur iPhone et sur iPad) et il devrait avoir un fond transparent (je vais ajouter le point de vue de flou). J'ai été capable de le faire lors de la présentation d'un UIViewController, mais cela ne fonctionne pas avec le contrôleur split view. Mon contrôleur split view dispose de 2 contrôleurs de navigation.Modal UISplitViewController avec fond transparent

Mon résultat est que le contrôleur de la vue principale a un arrière-plan noir.

Merci pour l'aide.

Répondre

0

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.

+0

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