2015-09-11 3 views
1

Я пытаюсь добавить SearchController в UINavigationBar. Я пытаюсь установить UITextField UISearchBar после обратной кнопки UINavigationController. Я хочу больше места после того, как кнопка заднейУстановить текстовое поле в UISearchBar

enter image description here

Когда я начинаю искать это выглядит как

enter image description here

В то время как я должен иметь возможность просматривать кнопку назад. Ширину текстового поля следует уменьшить. Также после Отмена он должен снова вернуться к первоначальной компоновке. В то время как он отображается, как показано ниже:

enter image description here

Ниже мой код

var searchResultController = UISearchController() 

self.searchResultController = ({ 

    let controller = UISearchController(searchResultsController: nil) 
    controller.searchResultsUpdater = self 
    controller.dimsBackgroundDuringPresentation = false 
    controller.searchBar.sizeToFit() 
    controller.searchBar.delegate = self 

    controller.hidesNavigationBarDuringPresentation = false 
    self.navigationController?.navigationBar.addSubview(controller.searchBar) 

    return controller 
})() 

override func viewDidAppear(animated: Bool) { 
    for subView in searchResultController.searchBar.subviews{ 
     for subsubView in subView.subviews { 
      if let textField = subsubView as? UITextField { 
       var bounds: CGRect 
       bounds = textField.frame 
       bounds.size.width = self.view.bounds.width - 50  
      } 
     } 

    } 
} 

Пожалуйста, дайте мне знать, как я могу это исправить.

Заранее спасибо

ответ

1

Для установив UIsearchBar добавить его в titleView Navigation как

self.navigationItem.titleView = controller.searchBar 

Для удаления кнопки Отменить можно использовать метод UISearchControllerDelegate

func didPresentSearchController(searchController: UISearchController) { 
    searchController.searchBar.showsCancelButton = false 
} 

Надеется, что это может помочь любому из ,

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