美文网首页
将vc覆盖在当前vc之上,类似于弹框

将vc覆盖在当前vc之上,类似于弹框

作者: lmao94 | 来源:发表于2019-04-02 16:04 被阅读0次

之前在一个控制器里想做个弹框的视图,一般都是创建一个view,然后做半透明,然后添加到keyWindow上.
后来就出现各种问题,比如IQKeyboard的页面自动适应调整高度只在vc中有效,或者想在这个弹出的页面中独立的网络交互,这些再用view来做感觉就很不合适,然后发现了下面的做法

  • 当前页面中正常创建vc
UIViewController *coverVC = [UIViewController new];
coverVC.view.backgroundColor = [UIColor colorWithWhite:0 alpha:0.5]; //黑色半透明
  • 关键点的代码,给当前控制器和即将推出的控制器推出的风格进行设置,这样present出现的vc会覆盖在当前的vc画面之上
coverVC.modalPresentationStyle = UIModalPresentationOverCurrentContext;
self.modalPresentationStyle = UIModalPresentationCurrentContext;
  • 之后present控制器
[self presentViewController:selectSpecVC animated:YES completion:nil];
  • 在推出控制器中dismiss销毁
[self dismissViewControllerAnimated:YES completion:nil];

相关文章

网友评论

      本文标题:将vc覆盖在当前vc之上,类似于弹框

      本文链接:https://www.haomeiwen.com/subject/otpgbqtx.html