0

私はメインのViewControllerを持っています。私はカスタムtableViewCellを持つtableViewを持っています。その中にはいくつかのビューオブジェクトとボタンが追加されています。私は、セル内のボタンをクリックしたときに別のViewControllerを表示したいと思います。また、(clickイベントが発生したtableCellデータを)送信し、ポップしたViewControllerからReceive(pickerViewや他のラベルのテキストから選択した値)私はそれを閉じるために(クローズボタンのような)方法が必要です。私はポップオーバーコントローラにそのセルのデータをロードしてそれを提示しようとしています次のコード、その後PopContopとしてViewControllerを表示

@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) 
    } 

しかし、それは、私はそれを却下するとMainVCにポップオーバーのVCからのデータを送信する方法を必要と全体View.Alsoを拡大し、代わりにセグエのようなポップオーバーとして来ていません。

正しく実装する方法がある場合はお知らせください。参照目的としての任意のリソースもうまくいけます、ありがとう。あなた記載されているコードから

+0

ここポップオーバーのチュートリアルです - > https://www.youtubeは。 com/watch?v = 48UA06EwfrM。デリゲートパターンを使用して、ポップオーバーから親View Controllerにデータを送信することもできます。 http://useyourloaf.com/blog/quick-guide-to-swift-delegates/ – Adrian

答えて

0

:あなたが自分であることをUIPopoverPresentationControllerDelegateを設定している

popover.delegate = self 

。 ちょうど任意の方法を実装し、(コントローラ用:UIPresentationController)

FUNCのadaptivePresentationStyleこの実装を使用 - > UIModalPresentationStyle { 戻り.none

}
+0

私はそのオプションの機能を含んでいます。 –

+0

あなたのアイデアは実際に私のために働いた。私は、次のコードを変更した 'adaptivePresentationStyleForPresentationController funcを(コントローラ:UIPresentationController) - > UIModalPresentationStyle { リターン.none}' に----> 'adaptivePresentationStyle FUNC(コントローラ用:UIPresentationController) - > UIModalPresentationStyle { 戻りUIModalPresentationStyle.none } '、ありがとうございます。それが役に立ちましたら –

+0

親切にこれを投票してください。他のユーザーにとっても有益です。おかげさまで – soumil

関連する問題