视图将消失未触发

发布于 2024-12-02 11:52:20 字数 186 浏览 2 评论 0原文

我正在使用 addSubView 方法来添加视图。 viewWillDisappear 有其他替代方法吗? viewWillDisappear 没有触发。我想在当前视图消失时释放所有分配的对象。目前我正在使用 dealloc 方法来执行此操作。但 dealloc 方法的触发速度并不快。由于我收到内存警告,有时我的应用程序可能会自行崩溃。主要问题是语音文件。

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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

×纯※雪 2024-12-09 11:52:20

addSubview/removeFromSuperview(这些方法与视图相关,而不是视图控制器)不会调用 viewWillAppear/viewWillDisappear 方法。您应该在 dealloc() 本身中编写释放对象代码。
removeFromSuperview 应该调用 dealloc()。

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().

早乙女 2024-12-09 11:52:20

您可以尝试在方法viewDidDisappearrelease对象。那么你就不会等待触发方法dealloc

另外,在方法 viewDidDisappear 中,您可以尝试从超级视图中删除所有子视图(这将对所有子视图调用 viewWillDisappear):

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

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];
憧憬巴黎街头的黎明 2024-12-09 11:52:20

在 viewDidUnload/viewDidDisappear 中释放对象并在 dealloc 中设置为 nil

这可能会起作用,但你一定应该看看为什么 viewWillDisappear 没有被调用。

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文