在使用UISearchController時(shí),點(diǎn)擊searchbar以后searchbar出現(xiàn)偏移.
目前網(wǎng)上的大多數(shù)方法都是在控制器中加入這么一行代碼
self.definesPresentationContext = YES;
蘋果對(duì)其的介紹是
蘋果對(duì)其使用介紹是:Determines which parent view controller's view should be presented over for presentations of type UIModalPresentationCurrentContext. If no ancestor view controller has this flag set, then the presenter will be the root view controller.
即:這一屬性決定了那個(gè)父控制器的View瞧甩,將會(huì)以優(yōu)先于UIModalPresentationCurrentContext這種呈現(xiàn)方式來展現(xiàn)自己的View丸边。如果沒有父控制器設(shè)置這一屬性,那么展示的控制器將會(huì)是根視圖控制器抵皱。
但是,在多頁(yè)面的情況下,如果寫下這句代碼,系統(tǒng)可能就會(huì)因?yàn)闊o(wú)法確定哪個(gè)view為開發(fā)者需要展示view而發(fā)生出乎意料的結(jié)果.
這樣的結(jié)果就是,searchbar成為第一響應(yīng)整個(gè)消失了.
最終在嘗試了幾種不同的搭配后發(fā)現(xiàn),只要在控制器中添加
_svc.hidesNavigationBarDuringPresentation = NO;
這么一句代碼就能很好的解決問題,剩下的就是調(diào)整展示控制器的frame了.