2010-07-22 7 views
0

J'ai une application avec plusieurs contrôleurs de vue modale. La plupart d'entre eux fonctionnent bien, sauf celui qui se trouve dans un UINavigationController (pour que je puisse montrer une barre de navigation). Lorsque ce contrôleur de vue modale est affiché, il s'anime bien mais lorsqu'il est ignoré, il ne s'anime pas. Je voudrais vraiment l'animer. Des pensées?ModalViewController dans un UINavigationController ne pas animer lors du renvoi

Merci beaucoup!

Voici le contrôleur de vue modal (j'ai simplifié le code, je l'espère pas trop!):

@protocol SettingsDelegate; 

@interface Settings : UIViewController <UITextFieldDelegate> { 
     id<SettingsDelegate> delegate; 
} 
@property (assign) id<SettingsDelegate> delegate; 

@end 

@protocol SettingsDelegate <NSObject> 

@optional 
- (void)Settings:(Settings *)controller dismissModalController:(NSString *)foo; 

@end 

La principale .h routine ressemble à:

#import "Settings.h" 

@interface MainPageController : UIViewController <SettingsDelegate> { 
} 
@end 

La routine principale .m ressemble à ceci:

- (void)Settings:(Settings *)controller dismissModalController:(NSString *)foo { 
    [self dismissModalViewControllerAnimated:YES]; 
} 

- (void)doSettings { 
     Settings *addController = [[Settings alloc] initWithNibName:@"Settings" bundle:nil]; 
     addController.delegate = self; 
     UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:addController]; 
     [self presentModalViewController:navigationController animated:YES]; 
} 

Répondre

3

Tout va bien, je suppose que vous libérez quelque chose avant que vous soyez méchant t à et il en résulte la disparition de la vue. Supprimez vos déclarations de version et voyez si cela résout le problème, puis revenez en arrière pour voir où cela s'est mal passé.

+0

Merci pour la réponse. Vous m'avez indiqué dans la bonne direction - pendant que je vérifiais mes déclarations de libération j'ai trouvé que je rejetais le modal incorrectement. Tout fonctionne maintenant! Merci. –

+0

Votez ensuite et acceptez la réponse! – Rudiger

Questions connexes