2015-08-29 5 views
2

UISearchController добавляет смещение при редактировании. В ландшафтном режиме он отлично работает, но не в портретном режиме.Смещение смещения UISearchController при редактировании

Есть ли какие-либо настройки в раскадровке, которые могут помочь преодолеть эту проблему.

Следующие работы, но показывает анимацию, которая идет +320, а затем возвращает к -320.

func updateSearchResultsForSearchController(searchController: UISearchController) { 
     self.mySearchContorller.searchBar.frame=CGRectMake(-320, 0, self.myTable.frame.size.width, 44.0) 

    } 

enter image description here

enter image description here

Я использовал раскадровки с SEGUE (показать деталь) .Attached является снимок экрана редактора.

enter image description here

+0

как вы представляя UISearchController? Представлен ли он из SplitViewController или из DetailViewController? – Yariv

+0

Представлен как DetailViewControllrt (внутри UINavigationCOntroller). Из пользовательского интерфейса мы можем видеть, что это baiscally add - смещение 320pt (ширина главного списка). Не знаю, как решить это, застрял. – andyPaul

ответ

1

Скачивали свой проект и играл с ним, и это, кажется, проблема здесь:
Изменить
self.tblSearchController.definesPresentationContext = true в
definesPresentationContext = true

Кроме того, вы подклассов UITableViewController, не создают ваш собственный стол, но перетащите его в свою раскадровку и используйте его. Вот как ваш DetailViewController должен выглядеть следующим образом:
класса DetailTableViewController: UITableViewController {

var tblSearchController:UISearchController! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    self.tblSearchController = UISearchController(searchResultsController: nil) 
    self.tableView.tableHeaderView=self.tblSearchController.searchBar 
    definesPresentationContext = true 

} 

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return 1 
} 

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let aCell:UITableViewCell! = tableView.dequeueReusableCellWithIdentifier("Cell") 
    return aCell 
} 

} enter image description here

+0

definePresentationContext был проблемой, если он установлен в true, он будет закрывать текущий контроллер, если текущий контроллер представления или его потомки представляют собой контроллер вида. – andyPaul

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