Мой глобальный var теряет свою ценность от одной функции к другой - PullRequest
0 голосов
/ 19 апреля 2019

У меня есть приложение, которое при нажатии кнопки должно устанавливать пользовательскую переменную, которая затем используется для настройки функции подготовки к переходу.В основном при подготовке к работе я настраиваю оператор switch для выполнения соответствующего кода.

Однако, если я установлю переменную, которая будет использоваться переключателем в функции IBAction для кнопки, переменная теряет свое значение до выполнения команды переключения, и все, что я получаю, это значение по умолчанию «fail».

Я искал повсюду и знаю, что делаю что-то действительно глупое, но я нуб и мне нужна помощь, если есть что-нибудь!

import UIKit

var mainAppointment = Appt()

class SubMenuOneViewController: UIViewController {
    // func whatsTheService() -> ServiceType {
    //     let serviceSelected = ServiceType.appointment
    //      return serviceSelected
    //  }

    @IBAction func selectAppointmentSetting(_ sender: myFirstButton) {
        //let whatsSelected = serviceTypeSelected.airport

        mainAppointment.serviceType = .petvisit
        mainAppointment.petName = "Beans"
        performSegue(withIdentifier: "appointmentSettingSegue", sender: self)
    }

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        let nav = segue.destination as! UINavigationController
        let apptOrderVC = nav.topViewController as! AppointmentScreenTableViewController

        //switch (serviceTypeSelected).self {
        switch mainAppointment.petName {
        case "Beans":
            apptOrderVC.appointmentTypeString = "Beans"
        default:
            apptOrderVC.appointmentTypeString = "fail"
        }
    }

1 Ответ

0 голосов
/ 19 апреля 2019

хорошо, я попробовал другой подход с использованием идентификатора segue в функции подготовки к segue, и он отлично работает. Вероятно, лучший путь! Спасибо за все отзывы!

   if segue.identifier == "appointmentSettingSegue" {
            apptOrderVC.appointmentTypeString = "Beans"
        } else {
            apptOrderVC.appointmentTypeString = "fail"
...