J'ai un contrôleur à vue divisée qui a une liste d'éléments sur la gauche et une vue détaillée sur la droite. Code pertinent dans AppDelegate :
let splitViewController = mainView.instantiateViewControllerWithIdentifier("initial") as! UISplitViewController
let rightNavController = splitViewController.viewControllers.last as! UINavigationController
let detailViewController = rightNavController.topViewController as! DetailsIpad
let leftNavController = splitViewController.viewControllers.first as! UINavigationController
let masterViewController = leftNavController.topViewController as! MainViewController
masterSplitViewController = masterViewController
detailSplitViewController = detailViewController
// Override point for customization after application launch.
let navigationController = splitViewController.viewControllers[splitViewController.viewControllers.count-1] as! UINavigationController
navigationController.topViewController!.navigationItem.leftBarButtonItem = splitViewController.displayModeButtonItem()
splitViewController.delegate = self
self.window!.rootViewController = splitViewController
Lorsque je lance l'application pour la première fois, je constate que la partie droite de l'écran partagé occupe tout l'écran :
Si je fais pivoter l'écran, il devient correctement réglé (probablement parce que les deux vues sont présentes sur l'écran) :
Lorsque je place des points d'arrêt partout, je constate que la vue détaillée de droite est chargée avant la vue principale de gauche (liste des éléments), bien qu'elle ne soit pas appelée directement. Je ne peux pas changer l'ordre dans lequel les vues de l'écran partagé sont appelées. Comment puis-je résoudre ce problème ?
UPDATE :
Je suis en mesure de définir ce paramètre avant de montrer le contrôleur de vue fractionné :
splitViewController.preferredDisplayMode = UISplitViewControllerDisplayMode.AllVisible
Et dans le ViewDidLoad du contrôleur split lorsque je l'imprime :
print(self.preferredDisplayMode.rawValue)
Je reçois : 2, qui est AllVisible. Mais le résultat est toujours le même.