参考地址:http://stackoverflow.com/questions/8379759/how-does-view-controller-containment-work-in-ios-5
在用UIViewController时,遇到点问题
原写法:
UserInformController* informController = [[UserInformController alloc] init];
[self.view addSubview:informController.view];
[self addChildViewController:informController];
移除时
[self.view removeFromSuperview];
[self removeFromParentViewController];
出错;
google到原因:
1.从无父Controller到添加到父Controller中
[vc willMoveToParentViewController:self];
[self addChildViewController:vc];
[self.view addSubview:vc.view]; // or something like this.
[vc didMoveToParentViewController:self];
2.从父Controller到移除
[vc willMoveToParentViewController:nil];
[vc.view removeFromSuperview];
[vc removeFromParentViewController];
发现问题,还另有原因,如果在子Controller中,把自己从父Controller中移除,在ios6中没问题,在iOS7中,会崩溃
[self willMoveToParentViewController:nil];
[self.view removeFromSuperview];
[self removeFromParentViewController]; //ios7中崩溃
暂时的解决方法,在子Controller中发通知,通知父Controller,移除子Controller