2010-02-04 7 views
1

J'ai un UIViewController qui a été présentée en invoquant la méthode presentModalViewController et maintenant je veux rejeter avec le dismissModalViewControllerAnimated:. Tout fonctionne bien, mais y a-t-il un événement ou une méthode de délégué que je peux attraper pour gérer le rejet de mon UIViewController?iPhone SDK: dismissModalViewControllerAnimated:

Répondre

4

Généralement, puisque c'est votre code qui effectue le renvoi, il n'y a pas besoin d'un événement. Si vous en avez besoin pour une raison quelconque (découplage, etc) alors vous pouvez facilement utiliser le NSNotificationCenter.

// listen for an event 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onDialogDimissed:) name:@"myapp_dialog_dismissed" object:nil]; 

- (void) onDialogDismissed:(NSNotification*)n 
{ 
    NSLog(@"yay"); 
} 

// raise an event 
[[NSNotificationCenter defaultCenter] postNotificationName:@"myapp_dialog_dismissed" object:nil userInfo:nil]; 

Il est probablement utile de mentionner que vous pouvez passer un NSDictionary * dans userInfo et si tout va bien se montrer à l'autre bout, de sorte que vous ne devez pas créer vos propres sous-classes ou emballages d'événements spéciaux juste pour transmettre des données entre les événements.

+0

ok, merci pour cela, mais j'ai un autre problème, la notification que vous avez écrit apparaît avant le rejet, alors le viewcontroller est rejeté, mais je veux un événement ou quelque chose après le rejet. Peut-être pouvez-vous résoudre cela? –

+0

vous soulevez l'événement quand vous le souhaitez. quel que soit le code est rejetant votre dialogue est le code qui devrait déclencher l'événement .... après le congédiement – slf

+0

bon à savoir;) –