UIViewController在调removeFromParentViewController时遇到的问题

来源:互联网 发布:mac卸载java 8 编辑:程序博客网 时间:2024/06/05 15:27

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

0 0
原创粉丝点击