2016-04-09 14 views
0

Meine App benötigt Unterstützung für universelle Geräte.Schaltfläche 'Abbrechen' der Suchleiste verschwindet in iPad

Und in diesem gibt es einen View-Controller, die UISearchController haben. Es kann normalerweise auf dem iPhone-Gerät angezeigt werden, aber auf dem iPad verschwindet die Schaltfläche "Abbrechen".

iPhone

iPad

Es ist der entsprechende Code über searchbar im View-Controller nach.

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 
} 

Ich möchte den Grund des Problems wissen, und auf welche Weise ich es lösen kann.

Hilfe suchen! Danke.

+0

Dies ist eine Vermutung - versuchen, den .showsCancelButton vor dem .sizeToFit bewegen() –

+0

@MikeTaverne ich Ihren Weg versuchen, und das Problem tritt immer noch. Die Eigenschaft 'showCancelButton' ist' true', was der Standardwert ist. Ich möchte nur betonen, dass das Eigentum wahr ist, also schreibe ich es. *>. <* –

+0

Da auf der iPad-Tastatur die Schaltfläche "Tastaturabweisung" angezeigt wird, ist die Abbruchtaste nicht unbedingt erforderlich. – tktsubota

Antwort

1

Ich habe die gleiche Situation in iOS 7 in dieser link gefunden. Und ich benutze den gleichen Weg, um mein Problem zu lösen. Aber ich weiß nicht, warum der Weg, eine neue UIView erstellen, kann es lösen? Was ist der Unterschied zwischen ihnen?

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 
Verwandte Themen