Rechercher des protocoles. Fondamentalement, vous avez une classe qui a des informations à partager. Dans ce cas, ce sera votre contrôleur de détail ou une sorte d'objet de données comme mentionné ci-dessus. Avoir cette classe (avec l'info à partager) déclarer un protocole qui utilise cette information. La méthode doit utiliser des paramètres pour filtrer vos informations. La classe déclare également un id (less than) protocole (supérieur à) délégué où "protocole" est ce que vous avez déclaré ci-dessus.
Maintenant dans cette classe lorsque vous obtenez les informations que vous souhaitez partager (quelle que soit la façon dont vous le faites), envoyez le message de méthode délégué à votre délégué. [delegate informationObtained:newInfo]
.
Pour la classe ou les classes qui ont besoin de cette information, implémentez la (les) méthode (s) protocolaire (s). Les informations dont vous avez besoin sont transmises par les paramètres de la méthode. C'est de la même manière que vous utilisez TextFieldDelegate
et UIPickerFieldDelegate
, seulement vous décidez du protocole et vous décidez comment les implémenter. Voici un exemple de code
En SpeakHereController.h
@protocol SpeakHereControllerDelegate
-(void)newSoundCreated:(NSString *)newSoundName savedFile:(BOOL)savedFile element: (id)element;
-(void)cancelNewSound;
-(void)soundEdited;
@end
dans l'interface: délégué id; ne pas oublier la Dans le fichier de mise en œuvre @property faire (non atomique, assignez)
, une fois que j'ai les informations que je veux partager:
[self.delegate newSoundCreated:myFileName savedFile:self.savedFile element:self];
Maintenant, pour le contrôleur tableview que veut utiliser ces informations: dans le fichier .h déclarer que vous allez mettre en œuvre le protocole
@interface AlarmSoundsTableViewController : UITableViewController <SpeakHereControllerDelegate, UITableViewDataSource, UITableViewDelegate>
Puis dans le fichier de mise en œuvre mettre en œuvre la méthode:
-(void)newSoundCreated:(NSString *)soundName savedFile:(BOOL)savedFile element:(id)element
{
[self setSoundFileName:soundName];
...
Il y a plusieurs façons: contrôleur de navigation, vue modale, etc. –
Oui, je cherche un échantillon spécifique. J'ai fait un UITableView qui mène à un détail UIView. Le texte sélectionné à partir de la table le fait dans un champ de texte dans la vue détaillée, mais je ne peux pas rééditer les modifications apportées à ce texte dans la vue tabulaire. Des idées concrètes quelqu'un? –