2016-07-26 15 views
2

ナビゲーションコントローラー内の検索バーの向きを中央に設定する必要があります。私も左にbarButtonItemを持っているしかしナビゲーションコントローラーの中央検索バー

searchBar.placeholder = "Search for Places" 
     var leftNavBarButton = UIBarButtonItem(customView:searchBar) 
     self.navigationItem.leftBarButtonItem = leftNavBarButton 

lazy var searchBar:UISearchBar = UISearchBar(frame: CGRectMake(100, 40, 440, 40)) 

とのviewDidLoadで:私はこのコードでプログラム的に検索バーを作成しました。これはインタフェースを介して設定されています。

enter image description here

問題は、私はコードを検索バーを追加したときに、それがカバーされますと、以下のスクリーンショットに示すように、画面にボタンが表示されないということです。私はセンターで検索バーに続いてメニューボタンを表示するには、検索バーをシフトするにはどうすればよい

enter image description here

答えて

4

理由は、あなたが割り当てられているsearchBar変更、ナビゲーションバーのためtitleViewに検索を追加し、ナビゲーションの中心に必要がある場合には、左側の理由を示してleftBarButtonItemこの

 searchBar.placeholder = "Search for Places" 
    var leftNavBarButton = UIBarButtonItem(customView:searchBar) 
    self.navigationItem.leftBarButtonItem = leftNavBarButton 

lazy var searchBar:UISearchBar = UISearchBar(frame: CGRectMake(0, 0, 440, 40)) 
searchBar.placeholder = "Search for Places" 
self.navigationItem.titleView = searchBar // or use self.navigationcontroller.topItem?.titleView = searchBar 
+0

http://www.ioscreator.com/tutorials/customizing-navigation-bar-ios8-swift –

+0

は完全に働いた。このリンクを参照してください! –

2

左側のナビゲーションボタンを設定しているため、検索バーが左側に表示されます。代わりにtitleViewを変更してください。 EX用

let search = UISearchBar() // Create your search bar 
controller.navigationController.navigationItem.titleView = search 
関連する問題