【问题标题】:Why will UITableViewController navigationItem.searchController not set in iOS?为什么 iOS 中不会设置 UITableViewController navigationItem.searchController?
【发布时间】:2022-01-17 04:14:24
【问题描述】:

由于某种原因,当我使用 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
}

这里是调试窗口:

? nil
! <UISearchController: 0x105077600>
? nil

【问题讨论】:

    标签: ios swift uiviewcontroller uisearchcontroller uinavigationitem


    【解决方案1】:

    这与搜索控制器或​​导航项无关。它与 Swift 语言有关。你不小心撞到了little-known edge case in optional chain syntax。问题是这一行:

    navigationItem.searchController? = searchController
    

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

    navigationItem.searchController = searchController
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-14
      • 2016-07-24
      • 2023-03-31
      • 1970-01-01
      • 2012-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多