我觉得我缺少了一些基本的东西,如果你能帮我把这些都整理好,我会很感激的。
假设我有两个视图控制器。。。ViewA控制器和ViewB控制器。
如果我想展示viewA,我会这样做:
ViewAController *new_view = [[ViewAController alloc] initWithNibName:@"ViewAController" bundle:nil];
self.viewAController = new_view;
[self.view insertSubView:new_view.view atIndex:0];
[new_view release];
如果在显示viewA之后,我想显示viewB控制器,我会这样做:
[self.viewAController.view removeFromSuperview];
ViewBController *new_view = [[ViewBController alloc] initWithNibName:@"ViewBController" bundle:nil];
self.viewBController = new_view;
[self.view insertSubView:new_view.view atIndex:0];
[new_view release];
这是我的问题。。。
[self.viewBController.view removeFromSuperview];
if ( self.viewAController == nil ) {
ViewAController *new_view = [[ViewAController alloc] initWithNibName:@"ViewAController" bundle:nil];
self.viewAController = new_view;
[self.view insertSubview:new_view.view atIndex:0];
[new_view release];
} else {
[self.view insertSubview:self.viewAController.view atIndex:0];
}
viewA的“viewDidLoad”函数不启动。就好像viewA已经从视图中删除了,但是它的状态保存在内存中。当我再次加载viewA时,它只是从停止的地方恢复过来。我真正需要它做的是像第一次加载一样加载,使用“viewDidLoad”等。。。
我希望我已经解释清楚了。如果有人能给我一些启示,我将不胜感激。