私はメインの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を拡大し、代わりにセグエのようなポップオーバーとして来ていません。
正しく実装する方法がある場合はお知らせください。参照目的としての任意のリソースもうまくいけます、ありがとう。あなた記載されているコードから
ここポップオーバーのチュートリアルです - > https://www.youtubeは。 com/watch?v = 48UA06EwfrM。デリゲートパターンを使用して、ポップオーバーから親View Controllerにデータを送信することもできます。 http://useyourloaf.com/blog/quick-guide-to-swift-delegates/ – Adrian