在我的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
}
}