J'ai un UISplitViewController, et je voudrais changer le contrôleur de vue racine (sur le côté gauche de l'écran) lorsque je clique sur un bouton dans la vue de détail (le droit côté de l'écran).Définir ViewController racine dans un UISplitViewController à partir de la vue détaillée
Si je le fais dans la vue détaillée:
NextGameViewController *newTableViewController = [[NextGameViewController alloc] init];
NSArray *newVCs = [NSArray arrayWithObjects:newTableViewController, self, nil];
splitViewController.viewControllers = newVCs;
Il se bloque avec l'erreur:
-[NextGameViewController setParentViewController:]: unrecognized selector sent to instance 0x4938a50
NextGameViewController est une sous-classe de UITableViewController, alors pourquoi est-ce qui se passe? Si je le pousse sur la pile du contrôleur de vue depuis la vue racine, cela fonctionne correctement.
Je voudrais totalement changer dans un nouveau contrôleur de vue racine. Je ne veux pas le pousser sur la pile et faire apparaître la navigation. – Senior
Si je comprends ce que vous faites correctement, vous essayez de remplacer la moitié de l'UISplitViewController plutôt que la table qu'il affiche à la racine. Plutôt que de remplacer ce qui est là, pourquoi ne pas cacher la table et ajouter une vue à sa place? Cela rendra le retour à la table plus facile et sera probablement agréable avec les capacités de rotation de UISplitViewController en mode portrait. Vous avez accès à la table mais pas à toutes les fonctionnalités de la vue racine, qui n'est pas seulement une table. Même si vous le faites, je ne pense pas que cela fera ce que vous attendez. – slycrel
Pas vraiment, je veux changer la table, mais pas en le poussant sur la pile de navigation. Je veux effectivement changer sa racine. Pourquoi dois-je échanger la vue et pas seulement le contrôleur pour la vue? – Senior