Swift iOS 13 - searchBar 中的 scopeBar 未显示在 TitleView 中

Swift iOS 13 - scopeBar in searchBar not displayed in TitleView

在 iOS13 之前,当搜索栏成为第一响应者时,下面的代码显示带有两个范围栏按钮的范围栏,这是预期的行为。

在 iOS 13 中,搜索栏仍然可以正常工作,但是不再显示范围栏。 Apple 的 UISearchBarDelegate 文档似乎建议使用 .setShowsScope(show:(bool), animated:(bool)) 和 .sizeToFit() for iOS 13。但是,这些函数调用似乎没有任何效果。寻找像 iOS 12 及更早版本那样显示范围栏的想法。

        func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) {
           //eventSearchBar is name of UISearchBar
           //eventSearchBar.delegate has already been called out as self
           //eventSearchBar is not owned by a UISearchController

        self.navigationController?.setNavigationBarHidden(true, animated: true)
        eventSearchBar.setShowsCancelButton(true, animated: true)
        eventSearchBar.frame.size.height = 68
        TitleView.frame.size.height = 132
        eventSearchBar.scopeButtonTitles = ["Category", "Project"]
        eventSearchBar.showsScopeBar = true

        if eventSearchBar.text! == "" {
            self.tableView.reloadData()
        } else {
            if eventSearchBar.selectedScopeButtonIndex == 0 {
                self.loadSearchElements(self.refreshControl)
            } else {
                self.loadProjectSearchElements(self.refreshControl)
            }

        }
    }

问题已解决。问题是情节提要 searchBar 对象已更新 iOS 13。解决方案是从情节提要中的 viewController 中删除 searchBar 并将其替换为从对象列表中拖动的新 searchBar。新旧 searchBar 看起来一模一样,但与它们的委托属性的连接明显不同。