iOS开发 - 使用UISearchController跳转新控制器时搜索框依然出现
2016-12-09 14:25
337 查看
最近偶遇一个问题,当使用UISearchController来push一个新的界面时,push成功后搜索框依然存在,不知道是不是苹果的一个bug,但是可以通过增加一句代码来解决:
那么这句话什么意思呢?
definesPresentationContext这是一个布尔变量,表示该视图被覆盖时,视图或者它的子类提供了一个视图控制器。默认为NO,我们在做跳转时,需要一个跳转的环境,如果呈现的视图控制器不提供的话,需要呈现这个控制器的父视图控制器。此处因为UISearchController为呈现的视图控制器,它不提供这个跳转的环境,所以需要它的父视图控制器提供,所以设置父视图控制器的这个布尔变量为YES。
这里需要注意个问题:
普通的VC在push时虽然这个属性默认为NO,但是,是没有影响的,因为这种情况只发生在有新的视图控制器覆盖了当前控制器的情况。
大意应该是,有视图控制器覆盖了根视图控制器,就手动设置根视图控制器为呈现的控制器,并作为跳转的环境。
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类型的演示图像而呈现,如 果没有父视图控制器设置了此标志,则呈现者将是当前控制器的根视图控 制器。
大意应该是,有视图控制器覆盖了根视图控制器,就手动设置根视图控制器为呈现的控制器,并作为跳转的环境。
相关文章推荐
- ios 开发--使用模态跳转了2次之后怎么从第三个视图控制器回到跟视图控制器
- iOS开发--iOS使用自定义URL实现控制器之间的跳转(DCURLRouter组件)
- 解决IOS开发使用Lumberjack库时出现的Use of undeclared identifier 'ddLogLevel'问题
- 【iOS开发-21】UINavigationController导航控制器初始化,导航控制器栈的push和pop跳转理解
- 【iOS开发-76】Private Contacts案例:导航控制器使用、数据传递、第三方类库使用、tableViewCell的加入删除、数据存储等
- IOS开发-使用Storyboard进行界面跳转及传值
- iOS开发-使用Storyboard进行界面跳转及传值
- IOS开发UI篇—导航控制器属性和基本使用
- 【iOS-Cocos2d游戏开发之十二】浅析使用C++/C/OC进行iOS游戏混编出现“failed with exit”问题与小结;
- IOS开发UI篇—导航控制器属性和基本使用
- iOS开发-使用Storyboard进行界面跳转及传值
- 【Cocos2d游戏开发之十二】浅析使用C++/C/OC进行iOS游戏混编出现“failed with exit”问题与小结;
- IOS开发UI篇—导航控制器属性和基本使用
- iOS开发UI篇—使用storyboard创建导航控制器以及控制器的生命周期
- 【iOS-Cocos2d游戏开发之十二】浅析使用C++/C/OC进行iOS游戏混编出现“failed with exit”问题与小结;
- 【iOS开发-20】UIViewCOntroller视图控制器之间跳转切换举例,以及视图控制器生命周期的简单说明
- iOS 开发之使用CocoaPods更新第三方出现“HEADER_SEARCH_PATHS `OTHER_LDFLAGS`……”问题解决方案
- iOS开发UI篇—导航控制器属性和基本使用
- IOS开发UI篇—导航控制器属性和基本使用
- 【Cocos2d游戏开发之十二】浅析使用C++/C/OC进行iOS游戏混编出现“failed with exit”问题与小结;