0

У меня есть главный ViewController, в котором у меня есть tableView с пользовательским tableViewCell, внутри которого я добавил несколько объектов представления и кнопку. Я хочу представить другой ViewController, когда я нажал на кнопку в ячейке, а также мне нужно отправить (данные TableCell, где произошло событие клика) и Получить (выбранное значение из текста pickerView и другого ярлыка) из всплывшего ViewController, а затем, наконец, Мне нужен способ (например, закрыть кнопку), чтобы закрыть его.Представить ViewController как popover

Я могу отправить данные ячейки, где событие щелчка произошло в камере, используя следующий код

@IBAction func cellBtnClicked(_ sender: Any) { 
    let foodItem:FoodItem? 
    let indexPath : IndexPath 
    if let button = sender as? UIButton { 
     let cell = button.superview?.superview as! UITableViewCell 
     indexPath = self.tableView.indexPath(for: cell)! 
     let hotel = hotels[indexPath.section] 
     foodItem = hotel.menu[indexPath.row] 

тогда я загрузку, что данные клетки в контроллер поповера и пытаюсь представить его как поповер

let popoverContent = self.storyboard?.instantiateViewController(withIdentifier:"ShowPopoverVC") as! MiniCartVC 
     popoverContent.foodItem = foodItem 
     popoverContent.modalPresentationStyle = UIModalPresentationStyle.popover 

       if let popover = popoverContent.popoverPresentationController { 

        let viewForSource = sender as! UIView 
        popover.sourceView = viewForSource 

        // the position of the popover where it's showed 
        popover.sourceRect = viewForSource.bounds 

        // the size you want to display 
        popoverContent.preferredContentSize = CGSize(width: 200, height: 135) 
        popover.delegate = self 
       }    

       self.present(popoverContent, animated: true, completion: nil) 
    } 

Но это не приходит как пирог вместо как Segue, расширив всю View.Also Мне нужен способ, чтобы отправить данные из поповер VC в MainVC на отвергая его.

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

+0

Вот поповер учебник -> https://www.youtube. ком/смотреть? v = 48UA06EwfrM. Вы также захотите использовать шаблон делегирования для отправки данных из вашего popover в родительский контроллер представления. http://useyourloaf.com/blog/quick-guide-to-swift-delegates/ – Adrian

ответ

0

Ваш указанный код:

popover.delegate = self 

Вы установили UIPopoverPresentationControllerDelegate быть самостоятельной. Просто реализовать дополнительный метод и использовать эту реализацию

Func adaptivePresentationStyle (для контроллера: UIPresentationController) -> UIModalPresentationStyle { возвращение .none }

+0

У меня есть эта дополнительная функция. –

+0

На самом деле твоя идея сработала для меня. Я изменил мой следующий код 'FUNC adaptivePresentationStyleForPresentationController (контроллер: UIPresentationController) -> UIModalPresentationStyle { возвращение .none }' К ----> 'FUNC adaptivePresentationStyle (для контроллера: UIPresentationController) -> UIModalPresentationStyle { возвращение UIModalPresentationStyle.none } ', спасибо. –

+0

любезно выше голос если если было полезно. Это также будет полезно для других пользователей. Спасибо. – soumil

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