considérerais cette configuration de vue:Appeler une méthode d'instance d'une autre classe
J'ai un contrôleur de vue qui commute entre un ensemble de vues sous. Chaque sous-vue est une sous-classe UIView avec un code personnalisé. Pour changer de vue, j'utilise une instruction switch qui alloue la nouvelle vue comme vue actuelle. Cela fonctionne très bien.
Je suis maintenant dans une position où j'ai une vue (MainMenu) avec une sous-vue (PopUp) qui contient un UITableView. La vue PopUp est affichée et masquée via les méthodes d'instance de la classe MainMenu.h. Appelons les méthodes showPopUp et hidePopUp.
Lorsqu'un utilisateur sélectionne un élément de l'UITableView, il doit alors fermer manuellement la vue contenant (PopUp) en cliquant sur le bouton de fermeture lié à la méthode hidePopUp. Ce qui doit arriver lorsqu'un utilisateur sélectionne un élément dans UITableView est que la méthode hidePopUp doit être déclenchée automatiquement. Comment déclencher la méthode de l'instance hidePopUp via le didSelectRowAtIndexPath de UITAbleView?
Est-ce un travail pour un délégué d'application, ou peut-être NSNotificationCenter? J'ai essayé des choses comme appeler
[[[UIApplication sharedApplication] delegate] closePopUp];
du didSelectRowAtIndexPath en vain ...
Merci à l'avance, il est probablement quelque chose de simple que je suis absent. La programmation avec une grippe est difficile!
Je ne comprends pas comment vous pouvez lier le bouton près de MainView mais pas le UITableView. Façon de ne pas mettre la logique dans le bouton de fermeture dans le didSelectRowAtIndex de la tableView? –
Je ne peux pas faire référence aux objets de la classe MainView quand ils sont dans les méthodes d'instance de la sous-classe UITableView. C'est pourquoi j'ai besoin d'un délégué, il semble – Timbo