'取消'搜索栏按钮在iPad中消失

时间:2016-04-09 02:17:27

标签: ios iphone swift ipad

我的应用需要支持通用设备。

在那里,有一个具有UISearchController的视图控制器。它可以在iPhone设备中正常显示,但在iPad中,取消'按钮消失。

iPhone

iPad

以下是视图控制器中有关搜索栏的相关代码。

func configureSearchController() {
    self.collectionView!.updateConstraints()
    resultsTableController = SearchBookResultTableViewController()
    resultsTableController.tableView.delegate = self
    searchController = UISearchController(searchResultsController: resultsTableController)
    searchController.searchResultsUpdater = self
    navigationItem.titleView = searchController.searchBar
    searchController.searchBar.sizeToFit()
    searchController.dimsBackgroundDuringPresentation = false
    searchController.hidesNavigationBarDuringPresentation = false
    searchController.searchBar.delegate = self
    searchController.searchBar.searchBarStyle = .Minimal
    searchController.searchBar.placeholder = "书籍、作者、出版社"
    // stress
    searchController.searchBar.showsCancelButton = true
    definesPresentationContext = true
}

我想知道问题的原因,以及我可以通过哪种方式解决问题。

寻求帮助! THX。

1 个答案:

答案 0 :(得分:1)

我在这个link的iOS 7中发现了相同的情况。我用同样的方法来解决我的问题。但我不知道为什么创建新的UIView的方式可以解决它?它们之间的区别是什么?

self.collectionView!.updateConstraints()
resultsTableController = SearchBookResultTableViewController()
resultsTableController.tableView.delegate = self
searchController = UISearchController(searchResultsController: resultsTableController)
searchController.searchResultsUpdater = self
searchController.searchBar.sizeToFit()
searchController.dimsBackgroundDuringPresentation = false
searchController.hidesNavigationBarDuringPresentation = false
searchController.searchBar.delegate = self
searchController.searchBar.searchBarStyle = .Minimal
searchController.searchBar.placeholder = "书籍、作者、出版社"

let SearchView: UIView = UIView(frame: searchController.searchBar.bounds)
SearchView.addSubview(searchController.searchBar)

navigationItem.titleView = SearchView