我有一个应用程序,按下按钮时应设置一个自定义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"
}
}
好吧,我尝试了一种不同的方法,在准备segue函数中使用segue标识符,它完美地工作。可能是更好的方式!感谢您的所有反馈!
if segue.identifier == "appointmentSettingSegue" {
apptOrderVC.appointmentTypeString = "Beans"
} else {
apptOrderVC.appointmentTypeString = "fail"