通过‘小面包’分析系统自带Modal可以得出:
Modal出来控制器的View视图是添加到UIWindow上
因此若自定义Modal效果控制器,只需把自定义modal控制器的view添加到window上,同时把当前的view移除,然后添加个相应动画模拟完成。
UIModalViewController *modalVc = [[UIModalViewController alloc] init];
self.modalVc = modalVc;//必须强引用着,不能被销毁
UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow;
[keyWindow addSubview: modalVc.view];
[UIView animateWithDuration:0.25 animations:^{
modalVc.view.transform = CGAffineTransformIdentity;
} completion:^(BOOL finished) {
[self.view removeFromSuperview];
}];