Si può mettere un UISearchBar
in una UINavigationBar
senza utilizzare un UINavigationController
senza problemi, ma si deve fare solo una piccola modifica, in primo luogo è necessario definire un @IBOutlet
al UINavigationItem
all'interno del vostro UINavigationBar
ma il suo nome deve essere diverso da la navigationItem
proprietà definita in tutta la classe UIViewController
, vedere il codice seguente:
class ViewController: UIViewController, UISearchControllerDelegate, UISearchResultsUpdating, UISearchBarDelegate {
var searchController : UISearchController!
@IBOutlet weak var navigationItemBar: UINavigationItem!
override func viewDidLoad() {
super.viewDidLoad()
self.searchController = UISearchController(searchResultsController: nil)
self.searchController.searchResultsUpdater = self
self.searchController.delegate = self
self.searchController.searchBar.delegate = self
self.searchController.hidesNavigationBarDuringPresentation = false
self.searchController.dimsBackgroundDuringPresentation = true
self.navigationItemBar.titleView = searchController.searchBar
self.definesPresentationContext = true
}
func updateSearchResultsForSearchController(searchController: UISearchController) {
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
E poi si può vedere qualcosa di simile nel vostro simulatore:
Spero che questo ti aiuti.
fonte
2015-06-02 23:50:13
Prova UISearchBar: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UISearchBar_Class/index.html#//apple_ref/c/tdef/UISearchBarStyle – Horatio
sono stato lì, ho don Non vedo nulla che sostituisca displaysSearchBarInNavigationBar –
@KaliAney Io posto una risposta al riguardo in questo http://stackoverflow.com/questions/30226835/displaying-search-bar-in-navigation-bar-in-ios-8/30227166#30227166 –