动态创建的viewcontroller被自动释放,引起EXC_BAD_ACCESS

来源:互联网 发布:ps mac 编辑:程序博客网 时间:2024/05/12 05:11

昨儿个写了zhuyouad应用的主页面上加载二级页面的代码,在主页上触摸不同的tabbaritem,就在tabbar上方的区域显示相应的二级页面。我在触摸事件中这么写的:

UIStoryboard *homeStoryboard = [UIStoryboard storyboardWithName:@"HomeStoryboard" bundle:nil];UIViewController *homeViewController = [homeStoryboard instantiateViewControllerWithIdentifier:@"page1"];[_contextArea addSubview:homeViewController.view];

调试的时候发现,二级页面加载显示倒是成功了,但是随后二级页面控制器被作为代理调用时,就发生了EXC_BAD_ACCESS。研究了下,发现触摸事件调用退出之后,homeViewController就被release了。我勒个去,addSubview里面明明只传入了view,我却以为它里面还会让主页viewContrller把homeViewController给retain一次,很傻很天真。

后来把homeViewController声明为成员变量,万事OK。

原创粉丝点击