2010-05-01 3 views
1

J'essaie d'implémenter un contrôleur de vue partagé comme UISplitViewController sur l'iPad, mais je ne veux pas que le volet de gauche soit caché lorsque le périphérique est en orientation portrait .Contrôleur split iPad qui ne cache pas le volet gauche dans le portrait

J'ai donc créé une sous-classe UIViewController pour cela dans IB et cela fonctionne très bien sans aucun contrôleur de sous-vue. Maintenant, j'essaie de comprendre ce qui est nécessaire pour installer et gérer les deux objets UIViewController pour les volets gauche et droit. Dans mon application, ils vont tous les deux être UINavigationController avec un UITableView en eux.

J'ai frappé un barrage routier mentale sur la façon de le mettre en place et espérais que quelqu'un pourrait me indiquer quelques exemples de code ou me donner une recommandation pour l'architecture ici ...

+0

duplication possible de http://stackoverflow.com/questions/2631672/ipad-splitviewcontroller-with-menu-in-portrait-mode-like-settings-app – kennytm

Répondre

3

La seule raison d'utiliser la Le contrôleur UISplitView est la logique show/hide qui vous est offerte gratuitement. Je pense qu'il est beaucoup plus facile de prendre simplement les deux contrôleurs de vue (Root View & Detail View) et les poser sur un UIViewController standard. Vous pouvez ensuite les gérer plus diorectement sans outrepasser le comportement prévu du contrôleur implémenté. L'application de paramètres sur l'iPad fait ce que vous cherchez et je crois que c'est l'approche que cette application prend.

Bonne chance!

1

Créez votre instance UISplitViewController puis appelez:

[splitViewController setHidesMasterViewInPortrait:NO]; 

Le compilateur vous donnera un message d'avertissement, mais il fera ce que vous voulez. Vous pouvez vous débarrasser de l'avertissement du compilateur en créant une catégorie sur UISplitViewController qui implémente cette méthode.

+1

Ceci fonctionnera mais votre application sera rejetée si elle est soumise à l'App Store. setHidesMasterViewInPortrait: est "privé". – nrj

2

setHidesMasterViewInPortrait est toujours une application privée et l'application sera rejetée?

Questions connexes