使用 UITableView 委托为 Nil

Delegate is Nil with UITableView

我是 Swift 的新手,正在尝试结合 UITableView 学习委托。我有 2 个场景:具有图像和按钮的主场景 (UIViewController)。按钮前进到第二个场景:选择场景(UITableViewController)。在每个 TableviewCells 中,我都有一个图像,用户将在其中 select 然后我想返回到主屏幕,该图像将被加载到图像位置。我已将所有内容嵌入到导航控制器中。代表总是出现零,我不明白为什么...谢谢

“选择场景-发件人”

 protocol TableViewControllerDelegate : class {

func passBackInformation (image: UIImage, name: String)

}

class TableViewController: UITableViewController {


weak var tableViewControllerDelegate : TableViewControllerDelegate?

...

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    
    let image = UIImage(named: productArray[indexPath.row].imageName)!
    let name = productArray[indexPath.row].productName
    
    if self.tableViewControllerDelegate != nil {
        self.tableViewControllerDelegate?.passBackInformation(image: image, name: name)
    }else{
        print("Still no delegate")
    }

这是我的委托 (UIViewController) - Receiver

中的代码
class ViewController: UIViewController, TableViewControllerDelegate {

func passBackInformation(image: UIImage, name: String) {
        frontProductImage.image = image
        frontLabel.text = name
        
    }

@IBAction func frontBUtton(_ sender: Any) {
        
        let selectionVC = storyboard?.instantiateViewController(withIdentifier: "SelectProduct") as! TableViewController
        
        selectionVC.tableViewControllerDelegate = self
        dismiss(animated: true, completion: nil)
       }

在名为 frontBUtton() 的 IBAction 中,正在实例化视图控制器并设置委托。但随后新的视图控制器立即被解散。

与其关闭视图控制器,不如呈现它:

present(selectionVC, animated: true, completion: nil)

将数据传回 tableview controller 后,然后,像这样关闭 view controller:

    if self.tableViewControllerDelegate != nil {
            self.tableViewControllerDelegate?.passBackInformation(image: image, name: name)
            dismiss(animated: true, completion: nil)
        }else{
            print("Still no delegate")
        }