Я создал многофакторное приложение на основе этого Учебника . Вот мой код в appdelegate.h
@class Disclaimerviewcontroller;
@interface GAINSAppDelegate : NSObject <UIApplicationDelegate> {
Disclaimerviewcontroller *firstview;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain )Disclaimerviewcontroller *firstview;
-(void)switchview :(UIView *)view1 toview:(UIView *)view2;
@end
и в ".m" у меня есть следующее
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
[self.window makeKeyAndVisible];
Disclaimerviewcontroller *aview = [[Disclaimerviewcontroller alloc]initWithNibName:@"Disclaimerviewcontroller"bundle:nil];
self.firstview = aview;
[_window addSubview:aview.view];
[aview release];
return YES;
}
-(void)switchview :(UIView *)view1 toview:(UIView *)view2{
[UIView beginAnimations:@"Animation" context:nil];
[UIView setAnimationDuration:0.50];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.window cache:YES];
[view1 removeFromSuperview];
[_window addSubview:view2];
[UIView commitAnimations];
}
и сделка
- (void)dealloc
{ [firstview release];
[_window release];
[super dealloc];
}
с того момента, когда я захочу переключиться на другое представление, я использую следующий код
-(IBAction)switchtodisclaimer2:(id)sender{
GAINSAppDelegate *delegate = (GAINSAppDelegate *)[[UIApplication sharedApplication]delegate];
Disclaimerviewcontrller2 *disclaimview2 = [[Disclaimerviewcontrller2 alloc]initWithNibName:@"Disclaimerviewcontrller2" bundle:nil];
[delegate switchview:self.view toview:disclaimview2.view];
}
как в учебнике. но когда я сделал анализ анализа. xcode предупреждает о возможной утечке памяти в приведенном выше коде. поэтому я добавил (в приведенном выше случае) [disclaimerview2 release];
и при запуске программы я получаю EX_BAD_ACCES
ошибку. Я думал, так как это было initwithnibname, это был авто-релиз? Теперь я смущен. учебник, кажется, не рассматривает это вообще.