第二个标签栏项中的搜索控制器不显示键盘

Keyboard doesn't show for search controller in second tab bar item

我有一个推送 UITabBarController 的导航控制器。因此,我所有的选项卡视图控制器都将共享相同的导航栏。到目前为止这不是问题,因为每次调用 tabBarController(_:didSelect:) 时我都会设置导航项的内容。

假设标签栏中只有 2 个控制器,每个控制器都有一个 UISearchController。附加到导航项,每次调用 tabBarController(_:didSelect:) 时都会配置此搜索控制器。

到目前为止,一切正常,看起来都符合要求。

问题是,当我从第一个控制器点击搜索栏时,键盘出现并且搜索有效,但是当我从第二个控制器点击搜索栏时,没有任何反应。

[在第二个选项卡中] 我知道 UISearchBarDelegatesearchBarShouldBeginEditing(_:) 被调用,但如果我尝试在该方法中设置 searchController.isActive = true,则应用程序将崩溃并显示以下消息:Attempt to present UISearchController on <FirstTabViewController> whose view is not in the window hierarchy

你遇到过这个问题吗?

访问第二个视图控制器时,是否将 definesPresentationContext 属性 设置为 true?