在使用UISearchController時,點擊searchbar以后searchbar出現偏移.
searchbar向上偏移
目前網上的大多數方法都是在控制器中加入這么一行代碼
self.definesPresentationContext = YES;
蘋果對其的介紹是
蘋果對其使用介紹是: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.
即:這一屬性決定了那個父控制器的View,將會以優先于UIModalPresentationCurrentContext這種呈現方式來展現自己的View。如果沒有父控制器設置這一屬性,那么展示的控制器將會是根視圖控制器。
但是,在多頁面的情況下,如果寫下這句代碼,系統可能就會因為無法確定哪個view為開發者需要展示view而發生出乎意料的結果.
本該在黑色view上的searchbar偏移到了箭頭所指的地方
這樣的結果就是,searchbar成為第一響應整個消失了.
最終在嘗試了幾種不同的搭配后發現,只要在控制器中添加
_svc.hidesNavigationBarDuringPresentation = NO;
這么一句代碼就能很好的解決問題,剩下的就是調整展示控制器的frame了.