Swift 3:从动态 uitableviewcell 内的按钮到 uiviewcontroller 的弹出连接

Swift 3: popover connection from button inside dynamic uitableviewcell to uiviewcontroller

您好,我正在尝试将 viewcontroller 与 table 视图单元格内的 uibutton 连接为弹出窗口连接。我有一个小视图控制器,里面有 2 个按钮,应该是我的弹出窗口。我有一个 table 视图,其中包含许多单元格和这些单元格中的按钮。当用户单击特定按钮时,我想在单击的按钮上打开一个带有锚点的弹出窗口,就像静态内容上弹出窗口连接的默认行为一样。

但是在处理动态内容时,我在故事板中遇到了这个错误: 无法编译连接...

这是我正在尝试做的事情和我得到的错误的一个小例子:

我不想使用隐藏的 1 像素按钮之类的脏东西。我尝试创建自定义 segue,但效果也不佳。

那么实现这一目标的最佳方法是什么?

代码如下:

import UIKit

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

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

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! CustomTableViewCell

        let button = cell.customButton

        return cell
    }

}


import UIKit

class CustomTableViewCell: UITableViewCell {

    @IBOutlet weak var customButton: UIButton!

    @IBAction func buttonTapped(_ sender: Any) {


    }

    override func awakeFromNib() {
        super.awakeFromNib()
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)
    }

}

如果您的弹出视图只有按钮,您可以使用 UIAlertController,但箭头只会出现在 iPad

@IBAction func buttonTapped(_ sender: Any) {

let alertVC = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
alertVC.modalPresentationStyle = .popover
//setup
if let popoverController = alertVC.popoverPresentationController  {
        popoverController.permittedArrowDirections = .any
        popoverController.sourceView = self
        popoverController.sourceRect = self.bounds
    }
}
tableVC.present(alertVC, animated: true, completion: nil)