J'ai 2 classes: la classe A a un protocole déclaré, que j'appelle dans la classe B. J'envoie une image de la classe A à la classe B en utilisant delegate et en classe B fais quelque chose avec cette image sous la méthode du protocole de la classe A. Puis je veux faire une nouvelle vue à la fin de la méthode de ce protocole dans la classe B. Je sais que ces 2 lignes d'invocation de nouvelle vue fonctionnent parce que si je l'appelle en classe A (par exemple dans viewDidLoad) alors c'est travail. Nouvelle vue montre dans ce cas tout ce que je veux. Cependant, quand je l'appelle de la méthode du protocole, cela ne fonctionne pas. Comment montrer cette vue?Affichage d'une autre vue de la méthode déléguée
classe A.h
@protocol AViewControllerDelegate<NSObject>
@optional
- (void) tappedImage:(NSNumber*)tag;
@end
classe a.m
[self dismissModalViewControllerAnimated:YES];
if ([self.delegatee respondsToSelector:@selector(tappedImage:)])
[self.delegatee performSelector:@selector(tappedImage:) withObject: [NSNumber numberWithInt:imageView.tag]];
classe B.m
- (void) tappedImage:(NSNumber*)tag{
UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed: [NSString stringWithFormat: @"%@.png",tag]]];
PictureEditingViewController *dvController = [[PictureEditingViewController alloc] initWithPicture: imgView.image];
[self presentModalViewController:dvController animated:YES];
//[dvController release]; dvController = nil;
}
PictureEditingViewController est appelé, je vois que j'ai NSLog l'intérieur viewDidLoad là. Cependant, rien ne s'affiche sur l'écran de l'iPhone, probablement la nouvelle vue est «sous» l'ancienne vue. Comment définir la nouvelle vue sur le dessus de l'ancienne vue ..?
Merci pour toute aide ^^