项目中UIAlertController 显示问题,很有意思。

在iOS 8.0 之后 苹果推荐使用 UIAlertController,之后对UIAlertView划线了。个人觉得可自定义性大大提高了很大,使用性也更人性化了。

但是今天使用却发现了一个问题:
如果ViewController往window上加了一个自定义view,然后点击这个view 弹出UIAlertController,这时候会发现UIAlertController不在视图的最前方,而是在这个自定义view 后面,很奇怪。使用UIAlertView却会显示在最前面。

思考:
后来想了下UIAlertController毕竟是继承一个普通的ViewController,是又一个普通的ViewController模态推出来的。而UIAlertView是以新建window的方式弹出的,会在正常的window的上方,这就找到原因了。所以在一些特殊情况下,UIAlertView还是比较靠得住的。

上图给大家看下问题:


项目中UIAlertController 显示问题,很有意思。_第1张图片
image.png

图层:


项目中UIAlertController 显示问题,很有意思。_第2张图片
image.png

那么依然使用UIAlertController,却能避免这种情况,应该怎么做?
思路:在模态推出的时候,alloc 一个新window,然后加上一个ViewController,然后在这个上面模态推出UIAlertController。
大家可以试试。
网上也有很多这个连接,这里我帮大家找了一份https://www.jianshu.com/p/fdee9f25cfd1

你可能感兴趣的:(项目中UIAlertController 显示问题,很有意思。)