2010-08-24 11 views
2

Comme beaucoup d'autres développeurs, j'ai créé des projets iPhone qui utilisent un UITabBarController en tant que contrôleur racine, avec les vues en onglet utilisant UINavigationController s pour explorer les listes en détail. . Et comme beaucoup d'autres développeurs, je dois migrer ces applications vers l'iPad pour profiter de l'écran plus grand (et surtout, ne pas forcer l'utilisateur à utiliser la visualisation «double» pour les applications iPhone uniquement).Migration d'un projet iPhone sur une barre d'onglets vers l'iPad

Apple a créé le UISplitViewController pour ce scénario exact ... apparemment. Je dis apparemment parce que même si je le vois utilisé dans Paramètres, iPod, iTunes, etc., aucune de ces applications n'utilise UISplitViewController dans un UITabBarController, car il est non seulement documenté comme ne fonctionne pas, mais les applications peuvent se bloquer si ces deux sont forcés dans un mariage de fusil de chasse. Envisagez une application iPhone hypothétique tout sur les animaux. Il a trois onglets: "Catégories" (où les animaux sont catégorisés par une méthode simple - peut-être nous avons une hiérarchie à deux niveaux avec des catégories comme "Birds" et "Fish"), "Recherche" (qui utilise un UITableView standard et un UISearchDisplayController), et "Histoires", qui sont des histoires sur les animaux (peut-être il ya une histoire sur les grenouilles, et une autre sur les chevaux nerd informatiques qui se sont transformés en l33t licornes).

Alors que les « Catégories » et « Rechercher » sont deux onglets qui pourraient être fusionnées, il est pas évident que vous pouvez ou devez fusionner la liste des animaux avec les histoires sur les animaux. Ainsi, alors que vous aimeriez utiliser un UISplitViewController sur l'iPad (avec la recherche intégrée dans la "racine", à gauche, sur le côté de la séparation), comment présentez-vous la vue "Stories"? Utilisez-vous un contrôleur segmenté? Haut ou bas? "Root" ou "Détail" vue de la scission? Ou peut-être utilisez-vous un écran d'accueil (comme l'application iPad de WebMD) qui affiche deux boutons ("Catégories" et "Histoires"), puis affiche une vue partagée pour l'utilisateur qui tape? Ou une barre d'outils en haut ou en bas? J'ai essayé de regarder plusieurs autres applications, y compris les paramètres, Mail, iPod, iTunes, Contacts, Maps et ainsi de suite, mais aucun d'eux ne présente deux types d'informations "différents" dans une seule application.

Quelle est l'approche générale ici? Y a-t-il des meilleures pratiques? Des modèles généraux que la communauté de programmation iPad a adopté?

Ou est-ce que j'attends et croise les doigts qu'Apple a finalement permis à UISplitViewController de fonctionner sans avoir besoin d'être la "racine"? (Cela pourrait ne jamais arriver!)

+0

+1 pour licornes l33t ... – Jasarien

Répondre

6

Vous pouvez utiliser le UISplitViewController et avoir un UITabBarController comme contrôleur principal (le volet de gauche qui est généralement une liste). De cette façon, vous pouvez toujours utiliser les onglets et les approches descendantes jusqu'à ce que vous lisiez la vue détaillée de chaque animal (en utilisant votre analogie), puis affichez la page détaillée dans le contrôleur de vue détaillée (le volet de droite).

Cela fonctionnerait et n'est pas interdit par Apple ou le HIG.

C'est mon idée de toute façon :)

+0

idée intéressante. Je n'avais pas pensé à y mettre la barre d'onglets. Je vais essayer. –