ios - 删除 viewdisappear 上的 subview 出现时再次添加 - 不工作 - ios sdk

标签 ios pushviewcontroller addsubview superview poptoviewcontroller

我正在使用该应用程序并希望在 View 消失删除表格 View 并希望添加相同的表格 View View 出现时。

目前

  1. 来自 A ctr(push) -> B ctr

  2. 从 B ctr(push) -> C ctr -- 我从 viewwilldisappear 的 superview 中删除了 B ctr 中的 tableview -- 工作正常。

  3. From C ctr(pop) -> B ctr -- 在view will appear of B ctr 我又添加了table view。 Viewwillaprea 被调用,但 tableview 未添加 作为 subview 。

4 来自 B ctr(pop) -> A ctr

  1. 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 中,否则不会再保留它,并且在您开始使用之前它会被销毁

要点:

  1. 修复任何内存问题(配置文件以找到真正的原因)
  2. 不要删除 TableView

关于ios - 删除 viewdisappear 上的 subview 出现时再次添加 - 不工作 - ios sdk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30274483/

相关文章:

ios - Gif 未出现在手动输入的约束上

ios - self.view.addSubview 和 view.addSubview 的区别

ios - 用于插入新对象的 CoreData 语法

ios - 摇动手势并准备 seuge - 开始/结束外观转换的不平衡调用

ios - 我应该为 iPad UIModalPresentationFormSheet 使用 pushViewController 还是 presentModalViewController?

iphone - pushViewController 不适用于 TabbarController

objective-c - 使用文本输入值作为 float

ios - UIbutton 需要时间在 iOS5 上的 UISCrollView 中接收按下事件

javascript - 网页是否有可能检测到它是从 webview 应用程序访问的?

iphone - UITableView 添加 subview