2014-11-04 2 views
1

Как я могу заставить панель поиска расширяться в панели навигации, когда я нажимаю кнопку поиска, например, в приложении Twitter? Прямо сейчас моя панель поиска просто падает поверх панели навигации. Это функция, которую я называю, когда я нажимаю на кнопку Поиск в панели навигации:Панель поиска расширяется из кнопки поиска на iphone

func searchbuttonclicked(sender: UIBarButtonItem) { 
    var searchresults = storyboard?.instantiateViewControllerWithIdentifier("searchresults") as searchResultsController 

    var searchcontroller = UISearchController(searchResultsController: searchresults) 
    searchcontroller.hidesNavigationBarDuringPresentation = false 
    searchcontroller.searchResultsUpdater = searchresults 
    searchcontroller.modalTransitionStyle = .CrossDissolve 

    presentViewController(searchcontroller, animated: true, completion: nil) 
} 

ответ

2

С this answer, вы можете использовать что-то вроде:

// declare as property 
var searchBar: UISearchBar! 

// in viewDidLoad 
searchBar = UISearchBar(frame: CGRectMake(0.0, -80.0, 320.0, 44.0)) 
navigationController?.navigationBar.addSubview(searchBar) 

// in action to show 
searchBar.frame = CGRectMake(0.0, 0, 320, 44) 

// in viewWillDisappear 
searchBar.removeFromSuperview() 

Однако, то searchBar свойство на UISearchController является только для чтения, поэтому вам потребуется подкласс UISearchController, чтобы он использовал панель поиска в контроллере навигации вместо той, которую она представляет по умолчанию.

+0

Благодарим за помощь – jk3455

Смежные вопросы