2010-05-19 3 views
0

Le contrôleur de vue racine de mon contrôleur de navigation est UIViewController (rootViewController). Il contient est un UITableView, comme suit: alt text http://www.freeimagehosting.net/uploads/c9b0985b63.pngUITableView Problème

Quand j'appuie sur le bouton fléché (appeler la fonction dans RootViewController), la tableview se déplacera à gauche jusqu'à ce que le bouton fléché à gauche sur le bord gauche.

Mais maintenant je veux aussi appuyer sur la cellule pour faire la même fonction. Mais le problème est la méthode didSelectRowAtIndexPath: je ne peux pas appeler cette fonction dans rootViewController. Alors, comment devrait faire cela?

J'imagine utiliser la méthode addObserver, mais je ne sais rien à ce sujet, n'importe qui peut m'expliquer ou me donner une idée, merci beaucoup!

Répondre

0

Deux façons: 1.Faire de la vue "Carte" le contrôleur est le délégué du contrôleur de la vue de navigation. Puis, en

didSelectRowAtIndexPath: 

appel du [delegate buttonPressed]; 2. Lorsque le bouton a été pressé première fois, ajouter un observateur:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(buttonPressed:) name:@"flip_the_navigation_controller" object:nil]; 

Puis, quand la cellule a été pressé, publier un notificatoin:

[[NSNotificationCenter defaultCenter] postNotificationName:@"flip_the_navigation_controller" object:nil]; 

et supprimer l'observateur dans dealloc méthode:

[[NSNotificationCenter defaultCenter] removeObserver:self]; 
Questions connexes