从内存中删除ViewController

ara*_*ide 2 iphone objective-c

我希望加载一个ViewController并执行一些操作然后从内存中卸载它(viewDidUnload).

 if (self.vViewController5.view.superview==nil)
 {

  ViewController5 *blueController = 
  [[ViewController5 alloc] initWithNibName:@"View5" bundle:nil];

  self.vViewController5 = blueController;

  [self.vViewController5 setDelegate:self];
  [blueController release];
 }



 [self presentModalViewController:vViewController5 animated:YES]; 
Run Code Online (Sandbox Code Playgroud)

以后,打电话

 [self dismissModalViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)

但我发现dismissModalViewControllerAnimated不会触发Viewcontroller5的事件viewDidUnload.

我尝试功能发布,但它导致程序崩溃.我也尝试使用removeFromSuperView但它不会触发事件ViewDidUnload.

欢迎任何评论

谢谢

InterDev中

sho*_*sti 5

viewDidUnload仅在应用程序收到内存警告时调用,并且视图未处于活动状态.它通常用于释放保留的视图(包括IBOutlets).您可以使用viewWillDisappearviewDidDisappear回复解雇(dealloc也将最终调用,但不一定完全取消视图).