要在视图控制器之间传递数据,可以使用以下方法:
protocol DataTransferDelegate: class {
    func sendData(data: Any)
}
class SenderViewController: UIViewController {
    weak var delegate: DataTransferDelegate?
    
    // 数据准备和传递
    func prepareDataAndSend() {
        let data = "要传递的数据"
        delegate?.sendData(data: data)
    }
}
class ReceiverViewController: UIViewController, DataTransferDelegate {
    // 实现协议方法
    func sendData(data: Any) {
        if let receivedData = data as? String {
            // 处理接收到的数据
            print("接收到的数据:\(receivedData)")
        }
    }
    
    // 在合适的地方设置委托
    func setDelegate() {
        let senderVC = SenderViewController()
        senderVC.delegate = self
    }
}
class SenderViewController: UIViewController {
    // ...
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if let receiverVC = segue.destination as? ReceiverViewController {
            receiverVC.delegate = self.delegate
            let data = "要传递的数据"
            delegate?.sendData(data: data)
        }
    }
}
通过以上方法,你可以在视图控制器之间传递数据,而无需使用故事板中的“Show”连线。