我有控制器B,它使用委托模式将数据发送回控制器A,但由于某种原因,我的segue没有触发。
是不是有什么东西阻止了我的对话被触发?我该怎么解决?
控制器B-模式存在

@IBAction func addButton(_ sender: Any) {
        delegate?.select(sID: selectedID)
        dismiss(animated: true, completion: nil)
    }

控制器A
func select(sID: String) {
        performSegue(withIdentifier: "editSegue", sender: self);
}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "editSegue" {
            if let destinationVC = segue.destination as? NewController {
                destinationVC.selectedQueryID = selectedQueryID;
                print(“test”);
            }
        }
        if segue.identifier == "selectSegue" {
            if let destinationVC = segue.destination as? ControllerB {
                destinationVC.queryID = selectedQueryID;
                destinationVC.delegate = self;
            }
        }
}

控制器C-模式显示(不显示自身)

最佳答案

在B viewcontroller中,关闭完成后触发

@IBAction func addButton(_ sender: Any) {

    dismiss(animated: true, completion: {
         delegate?.select(sID: selectedID)
   }
}

同时也要确保你在模式上呈现B viewcontroller。

10-08 07:27