我觉得我缺少了一些基本的东西,如果你能帮我把这些都整理好,我会很感激的。
  
  
   假设我有两个视图控制器。。。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”等。。。
  
  
   我希望我已经解释清楚了。如果有人能给我一些启示,我将不胜感激。