Когда вы делаете это:
@IBAction func doneBtnTapped(_ sender: Any) {
guard let discoverVC = storyboard?.instantiateViewController(withIdentifier: "DiscoverVC") as? DiscoverVC else { return }
discoverVC.venue = self.selectedVenue!
Вы не устанавливаете venue
виртуального виртуального канала Discover, в котором представлен виртуальный виртуальный канал Preferences. Вы устанавливаете venue
для нового Discover VC.
Вы можете использовать шаблон делегата для передачи venue
обратно.
Создать PreferencesVCDelegate
:
protocol PreferencesVCDelegate: class {
func preferencesVC(_ vc: PreferencesVC, didDismissWithVenue venue: Venue)
}
Добавить свойство delegate
в PreferencesVC
:
weak var delegate: PreferencesVCDelegate?
Заменить строку, которая устанавливает venue
, вызовом метода делегата:
@IBAction func doneBtnTapped(_ sender: Any) {
guard let discoverVC = storyboard?.instantiateViewController(withIdentifier: "DiscoverVC") as? DiscoverVC else { return }
delegate?.preferencesVC(self, didDismissWithVenue: self.venue)
Когда вы представляете PreferencesVC
, установите self
в качестве делегата:
@IBAction func preferencesBtnTapped(_ sender: Any) {
guard let preferencesVC = storyboard?.instantiateViewController(withIdentifier: "PreferencesVC") as? PreferencesVC else { return }
preferencesVC.selectedVenue = self.venue!
preferencesVC.delegate = self
presentDetail(preferencesVC)
}
И соответствуют DiscoverVC
PreferencesVCDelegate
. Здесь вы можете открыть для себя ВК venue
extension DiscoverVC: PreferencesVCDelegate {
func preferencesVC(_ vc: PreferencesVC, didDismissWithVenue venue: Venue) {
self.venue = venue
}
}