第二个标签栏项中的搜索控制器不显示键盘
Keyboard doesn't show for search controller in second tab bar item
我有一个推送 UITabBarController
的导航控制器。因此,我所有的选项卡视图控制器都将共享相同的导航栏。到目前为止这不是问题,因为每次调用 tabBarController(_:didSelect:)
时我都会设置导航项的内容。
假设标签栏中只有 2 个控制器,每个控制器都有一个 UISearchController
。附加到导航项,每次调用 tabBarController(_:didSelect:)
时都会配置此搜索控制器。
到目前为止,一切正常,看起来都符合要求。
问题是,当我从第一个控制器点击搜索栏时,键盘出现并且搜索有效,但是当我从第二个控制器点击搜索栏时,没有任何反应。
[在第二个选项卡中]
我知道 UISearchBarDelegate
的 searchBarShouldBeginEditing(_:)
被调用,但如果我尝试在该方法中设置 searchController.isActive = true
,则应用程序将崩溃并显示以下消息:Attempt to present UISearchController on <FirstTabViewController> whose view is not in the window hierarchy
。
你遇到过这个问题吗?
访问第二个视图控制器时,是否将 definesPresentationContext
属性 设置为 true?
我有一个推送 UITabBarController
的导航控制器。因此,我所有的选项卡视图控制器都将共享相同的导航栏。到目前为止这不是问题,因为每次调用 tabBarController(_:didSelect:)
时我都会设置导航项的内容。
假设标签栏中只有 2 个控制器,每个控制器都有一个 UISearchController
。附加到导航项,每次调用 tabBarController(_:didSelect:)
时都会配置此搜索控制器。
到目前为止,一切正常,看起来都符合要求。
问题是,当我从第一个控制器点击搜索栏时,键盘出现并且搜索有效,但是当我从第二个控制器点击搜索栏时,没有任何反应。
[在第二个选项卡中]
我知道 UISearchBarDelegate
的 searchBarShouldBeginEditing(_:)
被调用,但如果我尝试在该方法中设置 searchController.isActive = true
,则应用程序将崩溃并显示以下消息:Attempt to present UISearchController on <FirstTabViewController> whose view is not in the window hierarchy
。
你遇到过这个问题吗?
访问第二个视图控制器时,是否将 definesPresentationContext
属性 设置为 true?