在我的HomeClass中有一个static var globalLimit: Int = 0,我必须在其他类中传递他的值,这是我的prepare函数

 override func prepare(for segue: UIStoryboardSegue, sender: Any?) {



           if let vc = segue.destination as? SelectClass {
                  vc.limit = Int(steppeR.value)
                  HomeClass.globalLimit = Int(steppeR.value)
                  HomeClass.globalRadiusLimit = Int(stepperRadius.value)
        }
           else if let np = segue.destination as? CourseClass2 {
            np.categories = filteredList
            np.numberPlaces = filteredList.count
            np.radius = Int(stepperRadius.value)
        }

    }

现在的问题是,在我甚至可以从CourseClass2到达的SelectClass类中,我有了var numberPlaces = 0,他的值是
override func viewDidLoad() {
        super.viewDidLoad()

        numberPlaces = HomeClass.globalLimit

    }

但是就像你可以在我直接从CourseClass2进入HomeClass时在我的prepare函数中看到的那样,我想要numberPlaces = filteredList.count的值,但它当然不起作用,因为它与numberPlaces = HomeClass.globalLimit的viewDidload中的CourseClass2背道而驰,所以我该如何解决这个问题?

最佳答案

以这种方式尝试:

将您的numberPlaces变量设置为可选:

var numberPlaces: Int?

然后检查视图是否加载了零值:
override func viewDidLoad() {
    super.viewDidLoad()

    if numberPlaces == nil {
        numberPlaces = HomeClass.globalLimit
    }
}

10-07 15:55