2010-05-10 5 views
6

Je travaille sur une application iphone. Application charge beaucoup d'enregistrements à partir d'un service Web dans le contrôleur de vue de table. Je voudrais charger 25 dossiers initialement et restant dans le lot 25 en cliquant sur quelque chose comme "Charge 25 plus" à la fin de la vue de la table.Comment implémenter "Load 25 More" dans UITableViewController

Toute aide serait grandement appréciée.

Merci

Répondre

6

Il suffit de mettre un bouton connecté à un événement dans votre pied de table. Lorsque vous cliquez sur le bouton, ajoutez les 25 résultats suivants à votre tableau d'éléments déjà existant.

Ensuite, faites simplement un [self.tableView setNeedsDisplay]. Je l'utilise pour faire savoir à ma table que j'ai des données supplémentaires dans le tableau. En utilisant cela, il n'est pas nécessaire de faire défiler la ligne droite de la table, car elle conserve sa position d'origine.

Aussi, pourquoi appeler la méthode viewDidAppear, cela me semble erroné, parce que (bien sûr) la vue est déjà apparue et toutes les déclérations et les affectations que vous faites là sont refaites. Mettez simplement les choses à faire en regardant la vue ET lorsque vous ajoutez des données dans une méthode séparée et mettez call this method depuis votre événement button-press et depuis l'événement viewDidAppear.

+0

Merci beaucoup pour ta réponse. Cela semble être une bonne approche. Exactement ce que je cherche. Je vais essayer et vous mettre à jour quand vous aurez terminé. – Leo

+0

Ow, aussi, pour ajouter un tableau à votre tableau déjà existant: [yourCurrentArray addObjectsFromArray: newArray]; newArray peut contenir (par exemple) des résultats nouvellement récupérés. –

+0

Brillant! Merci – Leo

0

je fais presque le même dans ma demande, obtenir 50 premiers disques de webservice. En tant que pied de table, j'ai une vue avec les boutons suivant/précédent, qui, lorsque pressée, lance une requête de récupération pour les 50 résultats suivants/précédents. Une fois la requête d'extraction traitée, j'appelle viewWillAppear: animé: pour mon contrôleur de vue et à l'intérieur de [self.tableView reloadData], ces résultats s'affichent dans la même vue de table. Parce que je garde les données chaque fois seulement pour les résultats présentés, mais cela dépend de vos besoins.

Hope this helps

+0

Lorsque je récupère 25 autres enregistrements et que j'appelle viewWillAppear pour recharger des données, vont-ils s'ajouter aux 25 premiers ou les remplacer? – Leo

+0

Dans mon cas, il les remplace, puisque j'utilise le même tableau, donc avant d'analyser les 50 prochains résultats, je nettoie le tableau. Donc, il ne pas ajouter les résultats, plutôt les remplace –

+0

Merci pour votre réponse. Vraiment apprécier ça. Avez-vous une idée de comment pouvons-nous atteindre l'annexe? – Leo

0

j'ai écrit quelque chose qui fait exactement ce que vous décrivez, un mettre sur github: https://github.com/nmondollot/NMPaginator

Il encapsule la pagination et des œuvres avec à peu près n'importe quel webservice en utilisant les paramètres page et per_page. Il dispose également d'un UITableView avec récupération automatique des résultats suivants que vous faites défiler vers le bas. J'espère que ce sera utile.

+0

Merci beaucoup! Ce projet est très utile. – BlackMamba

Questions connexes