2010-10-04 5 views
6

Je code l'application de l'iPad et je dois mettre deux UITableView séparés dans le même écran. Pour cette application, je ne peux pas mettre le UITableView et diviser en deux sections pour des raisons de raisons. Ça doit être deux séparés. Eh bien, dans ce cas, comment je peux remplir les lignes de UITableView. Puis-je créer une DataSource et une Delegate dans des classes séparées, une pour une première classe UITableView et une autre classe DataSource et Delegate pour la seconde UITableView ou une autre approche plus élégante?iPad - Plus d'un UITableView dans le même écran

tks beaucoup.

Répondre

11

En août, je mettre un peu example code online où j'utilise 2 différentes classes pour DataSource et UITableViewDelegate

+0

bonjour vikingosegundo! très bon votre exemple de code! Je le télécharge et résous un autre problème avec ton code! encore une fois, tks. – rwvaldivia

+0

:) Je suis heureux, que ce fut utile! – vikingosegundo

4

Vous pouvez le faire de différentes manières. Le plus simple consiste à utiliser des classes séparées pour gérer la source de données et déléguer les protocoles pour chaque vue de table. Vous pouvez également utiliser une seule classe comme source de données et déléguer pour les deux, et vérifier l'identité de la vue de table transmise aux méthodes de protocole.

Il serait ressemble à quelque chose comme ceci: (je suppose que ce code est sur votre contrôleur de vue.)

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
    CGFloat height = 44.0; // default height 
    if (tableView == self.myLeftTableView) { 
     height = // Compute the cell height for the left table view. 
    } else { 
     height = // Compute the cell height for the right table view. 
    } 
    return height; 
} 

Cela pourrait devenir laid rapidement, ce qui est la raison pour laquelle je vous recommande de la première approche.

+0

Salut Robot K. Pas un code laid, tout fonctionne :). Faire "union" avec votre code et code de l'utilisateur vikingosegundo, cela sauve ma journée. Merci beaucoup. – rwvaldivia

3

Oui, vous pouvez faire différentes classes pour DataSource et méthodes délégués pour différentes UITableView et en-fait, c'est la meilleure approche pour l'utilisation plusieurs tables sur la même vue que cette approche implémente l'architecture MVC. Pour ce essayer ces 2 solutions dans lesquelles la première approche est mise en œuvre de 2 tables datasource et méthode déléguée dans la même classe et seconde est de mettre en œuvre différents datasource et la méthode des délégués dans les différentes classes, soit en utilisant la classe UITableViewController ou NSObject

Pour plus de détails essayez ces liens où vous pouvez trouver des exemples de code aussi:

Handle more than one table in a View Part-1

Handle more than one table in a View Part-2

Questions connexes