为什么 UITableViewController navigationItem.searchController 不会在 iOS 中设置?

Why will UITableViewController navigationItem.searchController not set in iOS?

出于某种原因,当我使用 UISearchController 设置 UITableViewController navigationItem.searchController 时,它不接受它。

这是我的代码:

let searchController = UISearchController(searchResultsController: nil)

if #available(iOS 11.0, *) {
    print("?", navigationItem.searchController)
    print("!", searchController)
    navigationItem.searchController? = searchController
    print("?", navigationItem.searchController)
} else {
    tableView.tableHeaderView = searchController.searchBar
}

这是调试 window:

? nil
! <UISearchController: 0x105077600>
? nil

这与搜索控制器或​​导航项无关。它与 Swift 语言有关。您不小心撞到了 。问题是这一行:

navigationItem.searchController? = searchController

我不知道你认为那是什么意思,但它不是那个意思!删除问号:

navigationItem.searchController = searchController