在我的 ParentViewController 我输入这个:
- (void)updateView:(NSInteger)_index article:(AObject *)aObject {
UIView *aUIView = [someUIViews objectAtIndex:_index];
// clear view
for (UIView *view in aUIView.subviews) {
[view removeFromSuperview];
}
// create view
ChildViewController *cvc = [[ChildViewController alloc] init:aObject context:managedObjectContext];
cvc.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
[self addChildViewController:cvc];
[aUIView addSubview:cvc.view];
cvc = nil;
}
在 ChildViewController 我输入这个:
.h 文件
@interface ChildViewController : UIViewController <UIWebViewDelegate> {
AObject *aObject;
UIWebView *webView;
}
.m 文件
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:(BOOL)animated];
webView.delegate = nil;
webView = nil;
aObject = nil;
}
评论:
- 我必须使用addChildViewController因为我在ChildViewController中使用UIWebViewDelegate。如果不使用addChildViewController,则无法保留 ViewController 并且无法调用UIWebViewDelegate的功能。
- 我用弧
计划目标:
- UIScrollView 实现了一个滚动视图,每次我将屏幕滚动到另一个页面时,都会调用函数updateView 。
- 滚动到另一页后,上一页将消失,因此将调用ChildViewController中的viewWillDisappear 。
截屏:
http://postimage.org/image/mzmksm9d5/
由于这里的声誉低,我无法直接发布图片。
根据该图,ParentViewController大约在第 4 秒被调用。然后内存继续快速增加而没有释放对象。大约在第 30 秒,ParentViewController通过单击导航栏上的后退按钮消失。内存下降了一点,但仍然有一些东西。
目标:
我希望做的是当调用viewWillDisappear时可以销毁ChildViewController的对象并且不再使用它。所以我希望内存在增加一点后总是会下降。否则,内存将与滚动时间成比例地增加并崩溃,直到内存被完全使用。
提前感谢您提供的任何帮助。