Я сейчас работаю над проектом ipad и нашел это.так вот моя структура
я подклассифицировал uiviewcontroller как настроенный VC, как это
@protocol customizedVCDelegate
-(void)viewclosed:(UIView *)view oldviewcontroller:(UIViewController *)oldvc newvcname:(UIViewController *)newvc;
@end
@interface customizedVC : UIViewController {
id <customizedVCDelegate> delegate;
}
@property (assign) id <customizedVCDelegate> delegate;
@end
в demoipadappDelegate, который является основой для переключения представлений, я взял протокол и реализовал функцию viewclosed.Я получил много просмотров, каждый вид будет загружен из пера.поэтому я загружаю первый в demoipadappDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//loading openvinview
openingVC *vc = [[openingVC alloc] initWithNibName:@"openingview" bundle:nil];
vc.delegate = self;
[window addSubview:vc.view];
[window makeKeyAndVisible];
return YES;
}
для переключения представлений, я буду запускать viewClosed в каждом viewcontroller.Например, я получил VC1 и хочу перейти на VC2.я запускаю представление, закрытое в vc1.и поскольку делегат vc1 является demoipadappDelegate, то на самом деле все делегаты vc являются demoipadappDelegate.поэтому demoipadappDelegate получит событие и сделает это.это в demoipadappDelegate
-(void)viewclosed:(UIView *)view oldviewcontroller:(UIViewController *)oldvc newvcname:(UIViewController *)newvc;
{
self.currentVC = (customizedVC *)newvc;
self.currentVC.delegate = self;
[window addSubview:self.currentVC.view];
[view removeFromSuperview];
[oldvc release];
}
Я ожидал, что использование memery уменьшится.это не так.Я также проверил, что в каждом vc я уже вручную выпускаю все, что я выделяю.так что это не так.
извините за мой плохой английский, я надеюсь, что я объяснил достаточно ясно