0

Fondamentalement, j'ai une hiérarchie de lieux: pays, état/prov, ville.Tableau de navigation actuel Afficher modalement, qui est le délégué?

Je souhaite présenter une table modale "Ajouter un emplacement" à l'aide d'un délégué.

Je me rends compte que la meilleure façon de le faire est de présenter mes éléments de haut niveau dans un TableView, et s'ils sont sélectionnés, je veux passer au niveau 'suivant'. N'importe lequel des emplacements, quel que soit le niveau, devrait pouvoir être «ajouté», donc je vais avoir un bouton accessoire, ou juste un bouton personnalisé qui dit ajouter sur la cellule. Je veux faire cela en utilisant des délégués mais je ne sais pas trop où le délégué devrait être. Je peux penser à 2 options: 1.
Sous-classe UINavigationController à un LocationNavigationController avec un LocationNavigationControllerDelegate mais je dois trouver someway pour un message vers le bas avec mon LocationListTableView
2. Faire une LocationListTableView qui est titulaire d'un délégué, et chaque fois que je vais à le niveau «suivant», continuez à laisser passer le délégué. Donc, quand ils ont finalement appuyé sur le bouton 'ajouter' de la cellule, mon ViewController original peut obtenir l'emplacement et le rejeter. Cela semble mal, mais en passant le délégué tout le long de la chaîne de TableViews. Dans cette méthode je voudrais d'abord créer un nouveau NavController, puis pop sur l'arbre racine de la LocationListTableView

+0

NSNavigationController? Voulez-vous dire UINavigationController? –

+0

Yah désolé, je vais changer cela. – aleclerc

Répondre

1

Jetez un oeil à la View Controller Programing Guide, en particulier, la section sur dismissing a modal controller. Leur exemple de code utilise un écran modal pour ajouter une recette à un contrôleur de vue de table qui l'a présenté.

+0

Donc, vous dites que je dois toujours pousser le délégué vers chacune des TableViews, et si quelqu'un décide d'agir, ça ira? – aleclerc

+0

Les UITableViewControllers sont les delgates. La vue modale permet aux UITableViewControllers de savoir quand ils ont fini d'utiliser votre protocole pour transmettre les informations, qui à leur tour, les rejette et utilise les informations transmises pour ajouter la nouvelle ligne. –

+0

Très bien, je comprends ce que vous dites, mais je ne suis pas entièrement d'accord. UITableViewController doit avoir une référence à un délégué, ils ne sont pas eux-mêmes le délégué. Le ViewController original où j'appelle presentModalView est le délégué. Et quand mon UITableView fait quelque chose, il appelle le délégué et dit 'Hey j'ai fini'. C'est pourquoi je demandais si je transmettais la référence du délégué via TableView, et si quelqu'un décidait d'agir, il appelait le délégué, ou s'il y avait un autre moyen de le faire. – aleclerc