В моем приложении я хочу, чтобы на панели навигации была кнопка поиска, и когда кнопка нажата, панель поиска должна появиться в панели навигации. Я видел много сообщений по этому вопросу, но почему-то это не работает для меня. Итак, я разместил SearchDisplayController
прямо над навигационной панелью. затем в viewDidLoad
я назначаю действие кнопке поиска и удаляю строку поиска из супервизора. Как только кнопка нажата, я звоню mapSearchDisplayController.displaysSearchBarInNavigationBar = true
, но ничего не происходит. Код выдержки ниже:Добавить searchBar в навигацииБар после просмотраDidLoad?
override func viewDidLoad() {
super.viewDidLoad()
banner.delegate = self
// Add button to navbar
var filterButton : UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Organize, target: self, action: nil)
self.navigationItem.leftBarButtonItem = filterButton
var aboutButton : UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Add, target: self, action: "aboutAction")
var searchButton : UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Search, target: self, action: "searchAction")
var rButtons : [UIBarButtonItem] = [aboutButton, searchButton]
self.navigationItem.rightBarButtonItems = rButtons
// Deal with Search Display Controller
self.mapSearchDisplayController.delegate = self.mapSearchDisplayController;
self.mapSearchDisplayController.searchResultsDataSource = self.mapSearchDisplayController;
self.mapSearchDisplayController.searchResultsDelegate = self.mapSearchDisplayController;
self.mapSearchDisplayController.searchBar.removeFromSuperview();
}
func searchAction(){
println("Search action")
mapSearchDisplayController.displaysSearchBarInNavigationBar = true
}
Если я позвоню displaysSearchBarInNavigationBar = true
в viewDidLoad
затем searchBar
правильно отображается в панели навигации. Как я могу появиться в панели Nav на кнопке? Любая помощь может быть исправлена.