2009-11-25 5 views
1

J'ai une vue de table multi-section, et chaque section a un bouton dans son pied de page qui devrait ajouter un nouvel élément à cette section. Le nombre de sections n'est pas prédéterminé ou limité, donc je ne peux pas faire un sélecteur séparé pour chaque section comme "addItemToSection1", etc.Déterminer l'index de section à partir de l'en-tête ou du pied de page UITableView?

Je ne peux pas non plus stocker simplement l'index de section dans le "tag" du bouton "propriété car la table supporte également l'ajout ou la suppression de sections arbitraires, ce qui change les index de section pour toutes les sections suivantes. La seule chose que je peux penser est de maintenir ma propre carte séparée des boutons à des sections ou quelque chose de similaire, ce qui est beaucoup plus grotesque que je voudrais. Est-il possible de déterminer directement à quelle section appartient un en-tête ou un pied de page donné?

Répondre

1

J'ai vu quelques méthodes pour associer un bouton à sa cellule tableview ou, plus important encore, la ligne ou les données associées à cette cellule. Vous devriez être capable de faire quelque chose de similaire pour les sections de table.

  1. Utilisez le tag du bouton. Dans le sélecteur d'action du bouton, utilisez la balise du bouton pour obtenir les données. On dirait que vous avez déjà exclu cela.
  2. Utilisez une vue personnalisée pour la section qui a une propriété pour les données associées et le bouton pour une sous-vue. Dans le sélecteur d'action du bouton, obtenez l'instance spécifique de votre vue personnalisée en tant que vue parent de votre bouton. Ensuite, récupérez les données de la propriété de la vue personnalisée.
  3. Placez le bouton dans un tableau de boutons et les données dans un tableau de données au même index que le bouton correspondant. Dans le sélecteur d'action du bouton, recherchez l'index du bouton dans le tableau de boutons et récupérez les données du tableau de données à l'aide de cet index.
2

Re: (. Ajouté comme une « réponse » parce que ne me permet pas de faire des commentaires sur la réponse ci-dessus pour une raison quelconque) la réponse de gerry3 ci-dessus

Merci pour l'info. Il semble qu'il n'y ait aucun moyen d'éviter de devoir maintenir une structure de données distincte pour mapper des sections et/ou du modèle sous-jacent, car je dois avoir l'index de section pour pouvoir appeler des choses comme insertRowsAtIndexPaths: withRowAnimation :, et depuis la section les index peuvent changer en raison de l'ajout ou de la suppression de sections. Comme c'est ennuyeux!

Questions connexes