关闭多个UIViewController时报异常,google了下,用下面代码可以避免,具体原因可能是关闭一个UIViewController影响到了其他的UIViewController,所以需要关闭了以后再关闭另一个,不能使用循环一下同时关闭多个,不知对不对,还请高手指教。上代码:
//这个是我定义的数组,放了多个需要关闭的UIViewController
@property(nonatomic, strong)NSMutableArray *viewControllers;
-(void)dismissViewControllerAll{
if (_viewControllers != nil && _viewControllers.count>0) {
UIViewController *controller = [_viewControllers lastObject];
NSLog(@"dismissViewControllerAll controller=%@", controller);
if (controller != nil) {
[controller dismissViewControllerAnimated:NO completion:^{//不用此种方式,会异常:Trying to dismiss the presentation controller while transitioning already
[_viewControllers removeObject:controller];
[self dismissViewControllerAll];
}];
}else{
[_viewControllers removeObject:controller];
[self dismissViewControllerAll];
}
}
}