參考地址: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