我正在使用该应用程序并希望在 View 消失时删除表格 View 并希望添加相同的表格 View 当 View 出现时。
目前
来自 A ctr(push) -> B ctr
从 B ctr(push) -> C ctr -- 我从 viewwilldisappear 的 superview 中删除了 B ctr 中的 tableview -- 工作正常。
From C ctr(pop) -> B ctr -- 在view will appear of B ctr 我又添加了table view。 Viewwillaprea 被调用,但 tableview 未添加 作为 subview 。
4 来自 B ctr(pop) -> A ctr
- From A ctr(push) -> B ctr -- 这次在B ctr tableview出现。
似乎当我返回 popViewControllerAnimated 时它没有将表添加为 subview 。
我在 xib 中有表。
我想这样做是为了释放分配的内存。
表格 View 导出
@property (nonatomic,weak) IBOutlet UITableView *tView;
在 viewWillDisappear 中移除表格 View
[self.tView removeFromSuperview];
在 viewWillAppear 中添加回来
[self.view addSubview:self.tView];
提前致谢
最佳答案
你不应该担心这个,除非你有理由 - 即重复的内存警告。而且,如果你这样做,你应该弄清楚为什么 - 它极不可能是表格 View 。如果有的话,它可能是您加载以填充 TableView 的数据,因此您可以考虑在不显示时删除该数据...
无论如何,您的问题是您销毁了 TableView 而不是重新创建了 TableView 。您的属性(property):
@property (nonatomic,weak) IBOutlet UITableView *tView;
是 weak
,所以当您从其父 View 中删除 View 时,它会被释放,因为没有其他东西持有对它的引用。
当您稍后调用时:
[self.view addSubview:self.tView];
在调用 self.tView = newTView
之前,您需要重新创建 TableView 并将其添加到 subview 中,否则不会再保留它,并且在您开始使用之前它会被销毁
要点:
- 修复任何内存问题(配置文件以找到真正的原因)
- 不要删除 TableView
关于ios - 删除 viewdisappear 上的 subview 出现时再次添加 - 不工作 - ios sdk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30274483/