gpt4 book ai didi

iphone - loadView 在内存警告后无法正确加载我的 View

转载 作者:行者123 更新时间:2023-12-03 21:22:58 26 4
gpt4 key购买 nike

我在 viewDidUnload 中将在 loadView 中创建的所有 subview 设置为 nil。

我在模拟器中模拟内存警告,并且我的屏幕外 View 及其 subview 通过viewDidUnload被删除。但是,当这些屏幕外 View 进入 View 时再次调用 loadView 时,我的 subview 不会第二次正确重新创建。例如,我在 loadView 中创建的标签和表格 View 是空的:

CGRect frame = CGRectMake(0, 0, 400, 600);
UIView *theView = [[UIView alloc] initWithFrame:frame];
self.view = theView;
[theView release];

int w = frame.size.width;
int h = frame.size.height;
CGRect tblFrame = CGRectMake(0, h/10, w, h*7/10);
UITableView *tblvw = [[UITableView alloc] initWithFrame:tblFrame style:UITableViewStylePlain];
tblvw.delegate = self;
tblvw.dataSource = self;
self.resourcesTblVw = tblvw;
[tblvw release];
[self.view addSubview:resourcesTblVw];


CGRect lblFrame = CGRectMake(0, 0, w, 36);
UILabel *lbl = [[UILabel alloc] initWithFrame:lblFrame];
lbl.font = [UIFont boldSystemFontOfSize:20];
lbl.backgroundColor = [UIColor colorWithWhite:0.7 alpha:1.0];
lbl.text = name;
self.nameLabel = lbl;
[lbl release];
[self.view addSubview:nameLabel];

想法?

最佳答案

第一个猜测是,发生这种情况是因为第二次执行加载 viewdidload 中的数据的代码不在 loadview 方法中。因此,请将代码从将数据加载到表等位置的位置复制到 loadView 方法中...

您可以做的另一件事...首选选项是创建一个方法,例如

示例:

-(void)loadData {
//enter code here to load all the tables and so on.

}

然后在 View 加载时调用此方法...这应该可以工作并在 loadView 方法中调用此方法...以便在内存警告后再次设置 View 后所有内容都会加载。

PK

关于iphone - loadView 在内存警告后无法正确加载我的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3075667/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com