vig*_*mar 5 exc-bad-access uiviewcontroller ios
在我的应用程序中,我有两个视图控制器.第一个Viewcontroller是应用程序窗口的rootViewController.单击第一个ViewController中的Button时,我将第二个Viewcontroller的视图作为subView添加到第一个视图中,第二个ViewController视图中有一个Button,我的问题是当我点击该按钮时应用程序崩溃了
-(void)theCheckoutViewisExpandedwitPatient:(id)patient
{
SecondViewController *sample=[[SecondViewController alloc]init];
CGRect rect=sample.view.frame;
rect.origin.y=30;
rect.origin.x=305;
[sample.view setFrame:rect];
[self.view addSubview:[sample view]];
}
Run Code Online (Sandbox Code Playgroud)
问题是 SecondViewController 没有分配给强变量/属性,因此它在方法返回时被释放。
当方法返回时,方法内任何指向对象的变量(如果我没记错的话,称为自动变量)都将从内存中删除。结果,该变量指向的对象将被释放。如果该对象没有在其他地方保留,例如分配给强属性或强实例变量,它将被释放。现在,您要做的是,获取第二个视图控制器的视图并将其粘贴到定义此方法的视图控制器视图的视图层次结构中。该方法返回,变量从堆栈中弹出,SampleViewController 不会以任何方式保留,因此它被释放。“新”视图执行的任何导致调用其视图控制器(第二个视图控制器)的操作(例如按钮点击事件通知)都将导致崩溃,因为该视图控制器不再位于内存中。
顺便提一句。你根本就没有做对。如果您想编写自定义容器,请查看 View Controller Containment API。
| 归档时间: |
|
| 查看次数: |
1887 次 |
| 最近记录: |