您的位置:首页 > 产品设计 > UI/UE

iOS开发 - 使用UISearchController跳转新控制器时搜索框依然出现

2016-12-09 14:25 337 查看
最近偶遇一个问题,当使用UISearchController来push一个新的界面时,push成功后搜索框依然存在,不知道是不是苹果的一个bug,但是可以通过增加一句代码来解决:

self.definesPresentationContext = YES;


那么这句话什么意思呢?

definesPresentationContext这是一个布尔变量,表示该视图被覆盖时,视图或者它的子类提供了一个视图控制器。默认为NO,我们在做跳转时,需要一个跳转的环境,如果呈现的视图控制器不提供的话,需要呈现这个控制器的父视图控制器。此处因为UISearchController为呈现的视图控制器,它不提供这个跳转的环境,所以需要它的父视图控制器提供,所以设置父视图控制器的这个布尔变量为YES。

这里需要注意个问题:

普通的VC在push时虽然这个属性默认为NO,但是,是没有影响的,因为这种情况只发生在有新的视图控制器覆盖了当前控制器的情况。

Determines which parent view controller's view should
be presented over for presentations of type
view controller has this flag set, then the presente
will be the root view controller.


翻译:确定哪一个控制器应该被作为UIModalPresentationCurrentContext类型的演示图像而呈现,如
果没有父视图控制器设置了此标志,则呈现者将是当前控制器的根视图控
制器。


大意应该是,有视图控制器覆盖了根视图控制器,就手动设置根视图控制器为呈现的控制器,并作为跳转的环境。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐