2016-05-19 10 views
0

Ich möchte meine Suchleiste aus der TableHeaderView ausblenden, wenn ich segne. Wie kann ich das machen? Ich erstelle die Suchleiste wie folgt:Hide UISearchController, wenn Sie zu einer anderen Ansicht wechseln

override func viewDidLoad() { 
    ... 
    resultSearchController = ({ 
     let searchController = UISearchController(searchResultsController: nil)  // The results of the search will be presented in the current Table View, so the searchResultsController parameter of the UISearchController init method is set to nil. 

     searchController.delegate = self   
     searchController.searchBar.delegate = self   // Without this selectedScopeButtonIndexDidChange won't get called. 
     searchController.searchResultsUpdater = self 
     searchController.hidesNavigationBarDuringPresentation = true // NOTE: if false and tapping on a reminder to go the its details and then back then the titles may be screwed up. 
     searchController.dimsBackgroundDuringPresentation = false  // NOTE: If true it would result in the filtered list not being scrollable. 
     searchController.hidesBottomBarWhenPushed = true 
     searchController.searchBar.sizeToFit() 
     self.definesPresentationContext = false  

     searchController.searchBar.scopeButtonTitles = SCOPEBAR_OPTIONS.descriptionArray 
     tableView.tableHeaderView = searchController.searchBar 
     return searchController 
    })() 

Ich versuchte einfach es wie folgt auf Null zu setzen, aber kein Glück:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) { 
    tableView.tableHeaderView = nil 
    ... 
} 

Antwort

1

Um searchcontroller Verwendung unter Methode zu entlassen

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) { 
    searchController.active = NO; 
} 
0

In viewDidLoad() können Sie die nächste Zeile für diesen Zweck hinzufügen

definesPresentationContext = true 
Schließlich
0

, was wurde gearbeitet für mich (Swift 4): weder

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
     print("prepare for segue") 
     searchController.isActive = false 
    } 

Methode definesPresentationContext in viewDidLoad()nicht für mich arbeiten:

definesPresentationContext = true 

noch:

searchController.definesPresentationContext = true 

noch:

self.definesPresentationContext = true 
Verwandte Themen