2010-05-11 2 views
0

Je suis nouveau sur le développement de l'iPhone et j'écris une application pour iPhone qui nécessite deux vues de table différentes, qui peuvent être sélectionnées en utilisant une barre de boutons ou une barre d'onglets. Ces vues de table sont toutes les deux de la même taille, mais couvrent seulement environ les deux tiers de l'écran de bas en haut. La partie supérieure de l'écran reste la même lorsque l'une de ces tables est affichée. Je voudrais également animer (retourner) ces vues lorsque l'utilisateur sélectionne l'un ou l'autre.Comment ajouter deux UITableViews en alternance à une vue UINavigationController existante?

La vue sur laquelle ces deux tables seront affichées est la vue détaillée de mon application où l'utilisateur a déjà sélectionné un élément de la table de l'écran principal. J'utilise un UINavigationController pour gérer les vues primaires et les détails et j'ai ce fonctionnement. J'ai aussi le premier de ces deux tableaux de détail fonctionnant dans ma vue détaillée, mais je pense qu'il est plus logique d'isoler le code pour ces deux tables et de ne pas dupliquer tout le code pour la partie de la vue de détail qui ne fait pas t changer.

Je ne m'inquiète pas vraiment comment ces deux vues de table sont créées (dans le code ou par IB). J'ai essayé plusieurs choses et je n'arrive pas à comprendre. Toute aide ou idée (avec un exemple de code) serait grandement appréciée!

Répondre

0

Il existe deux approches pour cela:

1) En fait, seulement ai une vue de table. Modifiez le code qui est exécuté dans les fonctions de délégué en fonction de quelle vue de table vous souhaitez voir les résultats. J'ai utilisé ceci avec des tables basées sur des données de base, et j'ai juste changé le prédicat pour récupérer différentes données. Mon cellForRowAtIndexPath renvoie juste le bon type de cellule en fonction des données qu'il obtient.

2) Faire de chaque table un contrôleur de table. Ajoutez-les tous les deux par alloc/init'ing puis

[self.view addSubview: tvc1.view];

[self.view addSubview: tvc2.view];

puis masquer celui que vous ne voulez pas voir. Vous aurez besoin de définir le cadre, etc, mais c'est trivial.

Si vous souhaitez animer entre deux vues il suffit d'utiliser une transformation de base (demander une question distincte si vous ne trouvez pas, mais ne est pas difficile et probablement couvert ici déjà)

+0

OK, donc j'ai besoin un uitableviewcontroller pour chaque uitableview même si j'ajoute seulement la "vue" du uitableviewcontroller à la vue du contrôleur uinavigation de base? C'est probablement là où j'ai mal tourné. J'essaye juste d'ajouter un uitableview à un affichage de "contenu" que j'ai ajouté dans le fichier xib uinavigationcontroller. –

+0

oui - en ayant les deux contrôleurs, vous obtenez de séparer vos délégués pour chaque vue de la table et de fournir les bonnes données à chacun. L'option 1 vous donne une vue de la table et un contrôleur si vous préférez cette approche. – Andiih

+0

Excellent! Merci pour les pointeurs. –

Questions connexes