Как передать данные из одного ViewController в другой ViewController?

Задумка в том чтобы перейти во второй вью контроллер, выбрать песню, нажать ok кнопку, вернуться назад, нажать play кнопку и чтобы начала играть песня которую мы выбрали.

   ``` //1
protocol ViewControllerDelegate: AnyObject {
    func update(trNew: String)

}

class ViewController: UIViewController {
    
    
    let allTreckArray = ["Я не улыбаюсь", "Веселей", "Вечеринка", "Мистер 718", "Притон", "Кэс", "В одного", "Маленькие ублюдки", "Какие новости", "Andrew Story", "Bandana", "5 Nights Crazy", "Slip & Slide", "Bon Voyage", "Errbody Sleeping", "Ladidadida", "Mama Makusa", "Million", "Ride Or Die"]
    var treck = ""
    var player = AVAudioPlayer()
    let playButton = UIButton()
    let pauseButton = UIButton()
    let secondVC = UIButton()
    //5
    var VC2 = SecondVC()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        //6
        
        VC2.delegate = self
        
        title = "Music"
        
        //MARK: - playButton
        
        playButton.frame = CGRect(x: 130, y: 650, width: 80, height: 80)
        playButton.setTitle("▶️", for: .normal)
        playButton.setTitleColor(.black, for: .normal)
        playButton.backgroundColor = .systemGray3
        playButton.layer.cornerRadius = 40
        playButton.addTarget(self, action: #selector(myPlayButton(param:)), for: .touchUpInside)
        
        self.view.addSubview(playButton)
        
        //MARK: - pauseButton
        
        pauseButton.frame = CGRect(x: 130, y: 650, width: 80, height: 80)
        pauseButton.setTitle("⏸", for: .normal)
        pauseButton.setTitleColor(.black, for: .normal)
        pauseButton.backgroundColor = .systemGray3
        pauseButton.layer.cornerRadius = 40
        pauseButton.isHidden = true
        pauseButton.addTarget(self, action: #selector(myPauseButton(param:)), for: .touchUpInside)
        
        pauseButton.isHidden = true
        self.view.addSubview(pauseButton)
        
        //MARK: - secondVC
        
        secondVC.backgroundColor = .gray
        secondVC.setTitle("Treck list >", for: .normal)
        secondVC.setTitleColor(.systemBlue, for: .normal)
        secondVC.addTarget(self, action: #selector(mySecondVC(param:)), for: .touchUpInside)
        
        navigationItem.rightBarButtonItem = UIBarButtonItem(customView: secondVC)
        
    }
    
    //MARK: - mySecondVC
    
    @objc func mySecondVC(param: UIButton) {
        
        let displeyTwo = SecondVC()
        dismiss(animated: true)
        navigationController?.pushViewController(displeyTwo, animated: true)
        
    }
    
    //MARK: - playButton
    
    @objc func myPlayButton(param: UIButton) {
        
        pauseButton.isHidden = false
        playButton.isHidden = true
        
        do {
            if let audiopatch = Bundle.main.path(forResource: treck, ofType: "mp3") {
                try player = AVAudioPlayer(contentsOf: URL(fileURLWithPath: audiopatch))
                player.play()
            }
            
        } catch {
            print("Errors this treck not found")
        }
        
    }
    
    //MARK: - pauseButton
    
    @objc func myPauseButton(param: UIButton) {
        playButton.isHidden = false
        pauseButton.isHidden = true
        player.pause()
    }
    

}
//2 
extension ViewController: ViewControllerDelegate {
    func update(trNew: String) {
        treck = trNew
    }
} ```
        class SecondVC: UIViewController {
        
        var treckNew = ""
        let okButton = UIButton()
        let allTreckButton = UIButton()
        let allTreckPicker = UIPickerView()
        let allTreckArray = ["Я не улыбаюсь", "Веселей", "Вечеринка", "Мистер 718", "Притон", "Кэс", "В одного", "Маленькие ублюдки", "Какие новости", "Andrew Story", "Bandana", "5 Nights Crazy", "Slip & Slide", "Bon Voyage", "Errbody Sleeping", "Ladidadida", "Mama Makusa", "Million", "Ride Or Die"]
        //3
        weak var delegate: ViewControllerDelegate?
        
        
        override func viewDidLoad() {
            super.viewDidLoad()
            
            
            //MARK: - okButton
            
            okButton.frame = CGRect(x: 57, y: 621, width: 300, height: 60)
            okButton.setTitle("Ok", for: .normal)
            okButton.setTitleColor(.red, for: .normal)
            okButton.backgroundColor = .systemGray3
            okButton.layer.cornerRadius = 30
            okButton.addTarget(self, action: #selector(okButtonFunc(param:)), for: .touchUpInside)
            okButton.isHidden = true
            
            
            self.view.addSubview(okButton)
            
            
            //MARK: - allTreckButton
            allTreckButton.frame = CGRect(x: 57, y: 299, width: 300, height: 330)
            allTreckButton.addTarget(self, action: #selector(myButton(param:)), for: .touchUpInside)
            
            self.view.addSubview(allTreckButton)
            
            //MARK: allTreckPicker
            
            allTreckPicker.frame = CGRect(x: 0, y: 0, width: 320, height: 216)
            allTreckPicker.center = view.center
            
            
            allTreckPicker.delegate = self
            allTreckPicker.dataSource = self
            allTreckPicker.tintColor = .black
            
            allTreckPicker.isHidden = true
            self.view.addSubview(allTreckPicker)
            
        //MARK: - okButtonFunc
        
        @objc func okButtonFunc(param: UIButton) {
            treckNew = self.allTreckArray[self.allTreckPicker.selectedRow(inComponent: 0)]
            
            //4
            delegate?.update(trNew: treckNew)
            
        }
        
    
    }
    
    //MARK: - Extension
    extension SecondVC: UIPickerViewDataSource {
        
        func numberOfComponents(in pickerView: UIPickerView) -> Int {
            return 1
        }
        
        func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
            return allTreckArray.count
        }
        
    }
    
    extension SecondVC: UIPickerViewDelegate {
        
        func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
            
            return allTreckArray[row]
            
        }
        
    }


Ответы (0 шт):