Подготовка функции размотки xcode11 segue не выполнена

У меня есть два контроллера представления A, B в сценах контроллера. Я могу создать переход от A -> B. Я также создаю переход от B -> A с помощью функции подготовки. Эта функция выполняется, но значение не передается в переданную строку данных и не передается обратно.

import UIKit

class homeViewController: UIViewController , UIAlertViewDelegate {
    @IBOutlet weak var returnStatusLbl: UILabel!
    override func viewDidLoad() {
        super.viewDidLoad()
         
        // Do any additional setup after loading the view.
    }
    var passedDataString  = "QR Return not set"


    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(true)
        returnStatusLbl.text = passedDataString
   }
    
    @IBAction func QRtoHome( _ sender: UIStoryboardSegue) {}
    
}
import UIKit

class QRViewController: UIViewController {

        @IBOutlet weak var wherefromLbl: UILabel!
        override func viewDidLoad() {
            super.viewDidLoad()
    }
    
     override func viewWillAppear(_ animated: Bool) {
         super.viewWillAppear(true)
    }
    
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        let destVC = segue.destination as! homeViewController
        destVC.passedDataString = "From Done"
    }    
}

person odbdux    schedule 17.07.2020    source источник
comment
Но выполняется ли переход?   -  person Sweeper    schedule 17.07.2020
comment
Как вы выполняете переход?   -  person Glenn Posadas    schedule 17.07.2020
comment
Да, переход выполняется. Я связываю кнопку «ГОТОВО» на панели навигации с ВЫХОДОМ.   -  person odbdux    schedule 17.07.2020
comment
Извините, я ошибся. Функция подготовки вызывается, однако значение From Done не передается в домашний контроллер просмотра.   -  person odbdux    schedule 17.07.2020
comment
Вы проверили, что viewWillAppear вызывается, когда вы раскручиваетесь?   -  person claude31    schedule 17.07.2020
comment
Да и я обнаружил, что он не выполняется.   -  person odbdux    schedule 17.07.2020


Ответы (2)


Когда вы возвращаетесь по раскрутке, viewWillAppear не вызывается.

Вы можете использовать наблюдателя:

   var passedDataString : String = "QR Return not set" {
     didSet {
        returnStatusLbl.text = passedDataString
     }
   }
person claude31    schedule 17.07.2020

Я нашел это работает:

    @IBAction func QRtoHome( _ sender: UIStoryboardSegue) {
        returnStatusLbl.text = passedDataString
    }
person odbdux    schedule 17.07.2020