Selon le Guide de programmation de View Controller, la délégation est la méthode recommandée pour ignorer une vue modale.Délégation et contrôleurs de vue modale
Suite propre exemple de recette d'Apple, je l'ai mis en œuvre ce qui suit, mais continuez à recevoir des avertissements que la méthode addNameController:didAddName
ne trouve ...
NameDelegate.h
@protocol NameDelegate
- (void)addNameController:(AddName *)addNameController didAddName:(NSString *)name;
@end
AddName.h
@interface AddName : UIViewController {
UITextField *nameField;
id delegate;
}
- (IBAction)doneAction;
- (id)delegate;
- (void)setDelegate:(id)newDelegate;
@property (nonatomic, retain) IBOutlet UITextField *nameField;
@end
AddName.m
- (IBAction)doneAction {
[delegate addNameController:self didAddName:[nameField text]];
}
- (id)delegate {
return delegate;
}
- (void)setDelegate:(id)newDelegate {
delegate = newDelegate;
}
ItemViewController.h
#import "NameDelegate.h"
@interface ItemViewController : UITableViewController <NameDelegate>{
}
@end
ItemViewController.m
- (void)addItem:(id)sender {
AddName *addName = [[AddName alloc] init];
addName.delegate = self;
[self presentModalViewController:addName animated:YES];
}
- (void)addNameController:(AddName *)addNameController didAddName:(NSString *)name {
//Do other checks before dismiss...
[self dismissModalViewControllerAnimated:YES];
}
Je pense que tous les éléments requis sont là et au bon endroit?
Merci
Merci ... Je devais ajouter @class addname au NameDelegate ainsi :) – joec