在UINavigationController中使用带有UITabBarController的UISearchController时,搜索栏会被切断
我有一个在UINavigationController
中有一个UITabBarController
的应用程序。 ( UITabBarController
不是故事板的“初始视图控制器”。)
在最初的UIViewController
,我有一个UISearchController
,它允许从远程源搜索内容。
这个工作正常,直到我添加了UITabBarController
。 现在,搜索栏在默认状态下显示正常,但是一旦您开始在其中键入内容,它就会向上推过视图的上边缘。
我意识到这可能与automaticallyAdjustsScrollViewInsets
, extendedLayoutIncludesOpaqueBars
和/或edgesForExtendedLayout
,但是在我所有的调整中,我一直无法找到魔法组合来让UISearchController
不会超越视图的顶部。
有关如何使其工作的任何想法?
请参阅此示例项目中的以下screengrab:
初步观点:
搜索文本框成为第一响应者:
输入一个单词并点击后输入:
我也碰到了这个问题,这里有一个解决方案:在UITabBarController
上设置definesPresentationContext = true
而不是表视图控制器似乎解决了它。
显然,您必须一直向上,直到容器层次结构中的导航控制器。 如果你问我,这不是世界上最明显的事情。
尽管definesPresentationContext
以前对我definesPresentationContext
,但是因为iOS 10在某些时候我不得不在我的搜索结果视图控制器上禁用Adjust Scroll View Insets。 当我在UITabBarController中使用UINavigationController时,更多关于我在UISearchBar的回答会被切断