ios – 在UINavigationController中使用带有UITabBarController的UISearchController时,搜索栏会被切断

我有一个在UINavigationController中有一个UITabBarController的应用程序. (UITabBarController不是故事板的“初始视图控制器”.)

在最初的UIViewController中,我有一个UISearchController,它允许从远程源搜索内容.

这个工作正常,直到我添加了UITabBarController.现在,搜索栏在默认状态下显示正常,但是一旦您开始在其中键入内容,它就会向上推过视图的上边缘.

我意识到这可能与automaticAdjustsScrollViewInsets,extendedLayoutIncludesOpaqueBars和/或edgesForExtendedLayout有很大关系,但在我所有的调整中,我一直无法找到魔法组合来让UISearchController不会超越视图的顶部.

有关如何使其工作的任何想法?

this example project看这些屏幕抓图:

初步观点:

搜索文本框成为第一响应者:

输入一个单词并点击后输入:

最佳答案 我也遇到了这个问题,这里有一个解决方案:在UITabBarController上设置definesPresentationContext = true而不是表视图控制器似乎解决了它.

显然,您必须一直向上直到容器层次结构中的导航控制器.如果你问我,这不是世界上最明显的事情.

点赞