我正在使用addSubView方法添加视图。 viewWillDisappear有没有其他方法可用? viewWillDisappear不会触发。我想在当前视图消失时释放所有分配的对象。目前我正在使用dealloc方法来做到这一点。但是,dealloc方法并不是很快。由于我收到内存警告,有时我的应用程序可能会崩溃。主要问题是语音文件。视图会消失不会触发
回答
您可以尝试release
方法viewDidDisappear
中的对象。然后你就不会等待射击方法dealloc
。
viewDidDisappear
你可以尝试从上海华删除所有子视图(将调用
viewWillDisappear
所有子视图)
另外:
NSArray *subviews = [self.view subviews];
for (UIView *view in subviews)
[view removeFromSuperview];
因为我使用addSubView viewDidDisappear,所以viewWillDisappear将不起作用。我做了这个使用代码:[myViewController viewWillAppear:YES]; –
即使你对该视图的调用方法'removeFromSuperview' ??? – Nekto
释放viewDidUnload/viewDidDisappear对象和dealloc的设置为nil
这可能工作,但你一定要看看为什么viewWillDisappear没有被调用。
释放你设置为零的“对象”没有意义,因为它们不是对象,它们是指向零的对象,并且你不能释放零。 –
@fichek你是对的,我的错误 –
这样更好:) –
addSubview/removeFromSuperview(这些方法与视图不是视图控制器有关)不调用viewWillAppear/viewWillDisappear方法。您应该在dealloc()本身中编写发行对象代码。
removeFromSuperview应该调用dealloc()。
GOT IT WORKED !!! –
当视图动画开始时,通过手动发送此消息给VC来修复它。 代码: [myViewController viewWillAppear:YES]; –
是的,有些时候需要手动调用这些函数。 – Mahesh
- 1. 回收视图不会消失
- 2. 视图事件不会触发
- 3. touchevents不会从子视图内触发
- 4. 网页视图事件不会触发
- 5. 列表视图onitemclick不会触发
- 6. 骨干子视图事件不会触发,访问this.model丢失
- 7. jwplayer'share'图片不会消失
- 8. 间接更新视图内容时触发不会触发
- 9. 切换视图时视图不会消失
- 10. UITableViewCell的子视图偶尔会消失
- 11. CakePHP取消按钮不会触发
- 12. iOS键盘不会消除视图后消失
- 13. navBar不会消失
- 14. UIAlertController不会消失
- 15. UIStatusBar不会消失
- 16. C#/ Xamarin:出现/消失事件不会触发
- 17. 当元素消失时onmouseout不会被触发
- 18. OnEnterBreakMode不会触发
- 19. UIKeyboardWillHide不会触发
- 20. Session_End不会触发?
- 21. KeyListener不会触发
- 22. UIDeviceOrientationDidChangeNotification不会触发?
- 23. prepareForSeque不会触发
- 24. Clickhandler不会触发
- 25. didAccelerate不会触发?
- 26. window.load不会触发
- 27. BackgroundTask不会触发
- 28. ICommand不会触发
- 29. valueChangeListener不会触发
- 30. OnTabChanged不会触发
你认为viewWillDisappear应该被调用,为什么?您是否通过导航控制器,标签栏控制器,以模态方式呈现另一个视图控制器或执行其他操作,从视图控制器导航? –