在iOS 7.1 发布之前,我的应用程序没有任何崩溃。现在在任何removeFromSuperview
方法上,崩溃。例如:我有视图控制器,当我想删除一个视图控制器时,我删除它的所有子视图,然后从堆栈中删除(堆栈:我将视图控制器存储在其中,用于加载新内容,并加载以前的内容):
for (UIView *subView in [contentVc subviews])
[subView removeFromSuperview];
我得到了
-[CALayer retain]:消息发送到释放的实例
信息
[actual removeFromParentViewController];
是去除它的好方法吗?它会释放整个视图控制器及其子视图吗?因为我的应用程序没有崩溃,而不是 removeFromSuperview。我不明白 iOS 7.1 中发生了什么变化。
以及如何在不删除和不删除我的情况下删除所有子视图viewController
(removeFromSuperview
如果ViewController
我只想添加新的子视图并删除当前内容)?
更新:
有时会崩溃:
[myactualviewcontroller.view removeFromSuperview];
-[CALayer retain]:消息发送到释放的实例
为什么???
有时如果我尝试从视图控制器视图中删除主子视图,它会发生同样的崩溃:
[mainView removeFromSuperview]
( mainView 是单个 UIView,添加到 vc.view )
UPDATE2:(非常详细)
所以,我有一个容器视图。我正在向UIViewController.view
这个容器中添加一个。我正在将视图作为子视图添加到UIViewController.view
. 这个视图不是本地 uiview,我的意思是,它声明为implementation{ UIView* mainView }
.当我的 UIViewController 将被释放时,在它- (void) dealloc { [mainView removeFromSuperview]; [mainView release] [super dealloc];}
的主视图中 removeFromSuperview 我的应用程序崩溃。