iOS实现pop效果(模态一个气泡出来)

前面写过一篇关于UIPopoverPresentationController简单实用的文章,在使用中可能会碰到一个问题,就是点击pop出来的界面以外的地方pop出的界面才会消失,这就致使若是我在pop出的界面上放置了button 或者 放了tableView的时候,触发点击事件了,而pop出的界面还存在,很影响用户体验,基于这点我也是问了些前辈,发现都不知道怎么手动关闭这个pop出的界面,因此我把头文件翻遍了都没找到相应的方法,最终没办法,我一个个属性和方法试出来的. 先看下我实现的效果:



屏幕快照 2016-03-02 下午8.16.40.png学习

 

打开UIPopoverPresentationController的头文件你会发现这样一些方法spa

屏幕快照 2016-03-02 下午8.24.17.pngcode


你能够看到带dismiss的方法,可是这并非咱们须要的,这两个方法是在pop出的界面消失或者即将消失的时候才调用的,而咱们须要的屈确实相似于dismissViewControllerAnimated:<#(BOOL)#> completion:<#^(void)completion#> 的方法,若是你按照普通的方法来打的话会出现这两种方法事件

屏幕快照 2016-03-02 下午8.29.01.png博客


然而这两种方法并无什么用,经过名字你也能看出来这并非咱们想要的,可是dismissal并无其余代码提示了.机智的我忽然想到是否是能够调用一下他的父视图作dismiss,可是事与愿违,self.categoryPopover.superclass值点出了父类,这怎么dismiss,不卖关子了,直接展现怎么解决的.io

屏幕快照 2016-03-02 下午8.34.50.pngtable


如图所示,我想按得是pop可是没想到按完p的时候我无心中看到了ViewController,顿时知道该怎么作了class

屏幕快照 2016-03-02 下午8.36.39.png用户体验


此段代码触发的时候,pop出的控制器就会销毁,我写这篇博客的目的不是单纯的介绍解决办法,而是想告诉到家解决办法的途径,当遇到问题的时候我第一个想法是本身找头文件解决,找不到了想到的是百度,然而百度不少帖子都是抄袭别人的,本身被没有实际操做,甚至有些问题没有答案,这个时候就要靠本身了,有不少问题是想通的,想让控制器消失,那确定要拿到这个控制器,因此我第一次想到的是父类,经过代码打印能够看到self.categoryPopover的父类就是ViewController,可是你想拿到他怎么办,经过KVO能够拿到,但很麻烦,这个时候你能够试试点语法,本次的问题就完美解决了.百度

iOS是不断跟新的,不少老的方法不断被弃用,已知抱着老的方法不断的去用,报黄也不去理会,当有一天真的被弃用的时候你会发现,你原本有时间去学习新的替换方法的,却由于工程催的紧而没有办法去学习了,因此只能百度别人的方法,照本宣科以后出一顿莫名其妙的错误,引觉得戒吧.


 

文/Ashoka_APP(简书做者) 原文连接:http://www.jianshu.com/p/d739baa62a11 著做权归做者全部,转载请联系做者得到受权,并标注“简书做者”。

相关文章
相关标签/搜索