我希望加载一个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];
稍后,请致电
[self dismissModalViewControllerAnimated:YES];
但我发现dismissModalViewControllerAnimated不会触发Viewcontroller5的事件viewDidUnload。
我尝试发布功能,但导致程序崩溃。 我也尝试使用removeFromSuperView,但它也没有触发事件ViewDidUnload。
欢迎任何评论
由于
InterDev中
答案 0 :(得分:5)
viewDidUnload
仅在应用程序收到内存警告时调用,并且视图未处于活动状态。它通常用于释放保留的视图(包括IBOutlets)。您可以使用viewWillDisappear
或viewDidDisappear
来回复解雇(dealloc
最终也会被调用,但不一定完全取消视图)。
答案 1 :(得分:1)
如您所发现的,被解雇的UIViewController不会触发viewDidUnload。但是,如果符合您的需要,它将触发viewWillDisappear方法。