ModalViewController within a UINavigationController not animating on dismissal
I've got an application with several modal view controllers. Most of them work fine except for one that is within a UINavigationController (so that I can show a navbar). When this modal view controller is displayed it animates fine but when dismissed it does not animate. I'd really like it to animate. Any thoughts?
Thanks much!
Here is the modal view controller (I've simplified the code, hopefully not too much!):
@protocol SettingsDelegate;
@interface Settings : UIViewController <UITextFieldDelegate> {
id<SettingsDelegate> delegate;
}
@property (assign) id<Sett开发者_JS百科ingsDelegate> delegate;
@end
@protocol SettingsDelegate <NSObject>
@optional
- (void)Settings:(Settings *)controller dismissModalController:(NSString *)foo;
@end
The main routine .h looks like:
#import "Settings.h"
@interface MainPageController : UIViewController <SettingsDelegate> {
}
@end
The main routine .m looks like this:
- (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];
}
It all looks fine, my guess is you are releasing something before you are meant to and it is resulting in the view disappearing. Remove your release statements and see if it fixes the problem, then work backwards to see where it went wrong.
精彩评论