view will disappear is not firing

2019-07-12 08:42发布

问题:

i am using addSubView method to add views. Did any alternative methods are there for viewWillDisappear? viewWillDisappear is not firing. I want to release all allocated objects when the current view get dissapear. Currently i am using dealloc method to do this. But dealloc method is firing not quickly. Since i am getting memory warings and sometimes the my app may crash itself. The main problem is with voice files.

回答1:

addSubview/removeFromSuperview (these methods relate with views not view controllers) doesnt call viewWillAppear/viewWillDisappear methods. You should write release object code in dealloc() itself.
removeFromSuperview should call dealloc().



回答2:

You can try to release objects in method viewDidDisappear. Then you won't wait for firing method dealloc.

Also in method viewDidDisappear you can try to remove all subviews from superview (that will call viewWillDisappear to all subviews):

NSArray *subviews = [self.view subviews];
for (UIView *view in subviews)
    [view removeFromSuperview];


回答3:

release objects in viewDidUnload/viewDidDisappear and set to nil in dealloc

this might work, but you should surely look why viewWillDisappear is not called.