我遇到了一个奇怪的问题。我使用 removeFromSuperview 导致我的应用迷恋。但是如果我使用 [UIView animationWithDuration],就可以了。
见下图 这样就可以运行成功了。
[self willMoveToParentViewController:nil];
[UIView animateWithDuration:0.5 animations:^(void){
CATransition *transition = [CATransition animation];
transition.type = kCATransitionReveal;
transition.subtype = kCATransitionFromBottom;
transition.duration = 0.5;
[self.view.superview.layer addAnimation:transition forKey:nil];
} completion:^(BOOL finished){
[self.view removeFromSuperview];
[self removeFromParentViewController];
}] ;
但是如果我像这样删除 [UIView animationWithDuration] 。
[self willMoveToParentViewController:nil];
[self.view removeFromSuperview];
[self removeFromParentViewController];
它已经崩溃了。
这是我添加子视图的方法
[self.tabBarController addChildViewController: vc];
CATransition *transition = [CATransition animation];
transition.type = kCATransitionMoveIn;
transition.subtype = kCATransitionFromTop;
transition.duration = 0.5;
[self.tabBarController.view.layer addAnimation:transition forKey:nil];
[self.tabBarController.view addSubview:vc.view];
[self.tabBarController didMoveToParentViewController:vc];
我不知道为什么会这样。希望可以有人帮帮我 。这是一个奇怪的问题。