我的全局变量正在从一个函数丢失到另一个函数

问题描述 投票:-1回答:1

我有一个应用程序,按下按钮时应设置一个自定义var,然后用于配置准备segue功能。基本上在准备功能时我设置了一个switch语句来执行适当的代码。

但是,如果我在按钮的IBAction函数中设置将由交换机使用的var,则在执行切换命令之前var将丢失其值,并且我获得的是默认值“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"
        }
    }
swift var
1个回答
0
投票

好吧,我尝试了一种不同的方法,在准备segue函数中使用segue标识符,它完美地工作。可能是更好的方式!感谢您的所有反馈!

   if segue.identifier == "appointmentSettingSegue" {
            apptOrderVC.appointmentTypeString = "Beans"
        } else {
            apptOrderVC.appointmentTypeString = "fail"
© www.soinside.com 2019 - 2024. All rights reserved.