2010-09-16 6 views
2

Le générateur d'interface ne vous permet pas d'ajouter un UISplitViewController en tant que contrôleur racine d'un UINavigationController. J'ai également essayé de créer par programme le UINavigationController et de définir son contrôleur de vue racine comme UISplitViewController.Un UISplitViewController peut-il être le contrôleur racine d'un UINavigationController?

Le résultat est une fenêtre vide avec juste la barre de navigation.

J'ai également essayé un remplacement de contrôleur de vue éclatée, MGSplitViewController. Cela fonctionne principalement, sauf que dans le contrôleur de vue partagée, la vue principale est un autre UINavigationController. Sa barre de navigation apparaît trop épaisse. Changer d'orientation et de retour l'efface.

J'ai essayé toutes sortes d'approches différentes pour avoir une vue qui ressemble à une vue partagée et d'autres vues que je commute entre. J'ai essayé dans un contrôleur de tabulation, écrit mon propre contrôleur pour gérer les sous-vues de la fenêtre et avoir la vue partagée comme une vue gérée, et maintenant le contrôleur de navigation. Toutes les tentatives ont eu quelques problèmes. Le problème le plus constant concerne l'orientation de la vue. Mon application s'exécute en mode paysage et, en général, les vues enfant pensent qu'il s'agit toujours d'un portrait.

Toutes les idées ont été appréciées.

Répondre

2

No.

La ligne du bas: un UISplitViewController doit être le point de vue de la racine d'une application (ou peut-être plus spécifique, une fenêtre). Il ne peut pas vivre dans un UINavigationController ou quoi que ce soit d'autre.

Ceci est le cas avec le SDK actuel, et il n'y a aucune garantie que cela changera dans les futurs SDK.

+0

Ceci n'est pas vrai. On pourrait faire valoir qu'un UISplitViewController * ne devrait être que l'affichage racine d'une fenêtre, vous pouvez certainement créer un UISplitViewController par programme et ajouter sa vue en tant que sous-vue d'une autre vue. J'ai un client qui fait cela pour présenter l'écran des paramètres d'une application, et cela fonctionne très bien. Cela dit, il semble étrange de mettre une vue partagée sur une pile de navigation. –

+1

@chrispix Au moment de l'écriture, placer une vue partagée dans un autre contrôleur de vue génèrerait une erreur d'exécution. Je pense que c'est encore le cas mais je n'ai pas essayé avec le SDK 4.2. Procédez à vos risques et périls. –

1

Il semble étrange d'ajouter une vue éclatée à une pile de navigation. Le panneau maître d'un contrôleur de vue partagée est généralement un contrôleur de navigation, donc (sans en savoir plus sur votre conception), j'utiliserais probablement cela pour contrôler votre hiérarchie de navigation.

Questions connexes