昨儿个写了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。