2015-09-22 2 views
0

У меня есть ParentViewController с UISearchBar и ChildTableViewController с табличным представлением, в котором будут отображаться результаты поиска. Когда я нажимаю на searchBar, popover должен присутствовать со всеми результатами, соответствующими фильтру, записанному на searchBar. Это означает, что в начале все результаты должны отображаться в popoverController.Представлены результаты UISearchBar как UIPopoverPresentationController iOS 9

Проблема заключается в том, что результаты показаны на весь экран, а не отображаются в popover. Ниже приведен код, соответствующий ParentViewController, где должен быть представлен popover.

func searchBarTextDidBeginEditing(searchBar: UISearchBar) { 
    let childController = ChildTableViewController() 
    childController.modalPresentationStyle = .Popover 
    childController.preferredContentSize = CGSize(width: 50, height: 100) 
    let popover = childController.popoverPresentationController 
    popover?.permittedArrowDirections = .Any 
    popover?.delegate = self 
    popover?.sourceView = self.view 
    popover?.sourceRect = CGRect(x: 200, y: 200, width: 1, height: 1) 
    presentViewController(childController, animated: true,completion: nil) 

} 

enter image description here

Я использую Xcode 7 и IOS 9.

ответ

0

Что вам нужно сделать, это реализовать следующий метод, который является частью протокола UIPopoverPresentationControllerDelegate:

- (UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller { 
    return UIModalPresentationNone; // This will force a popover display 
} 
Смежные вопросы