【发布时间】:2017-11-18 12:41:39
【问题描述】:
在我的HomeClass 中有一个static var globalLimit: Int = 0,我必须在其他类中传递他的值,这是我的准备函数
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)
}
}
现在的问题是,在我什至可以从SelectClass 到达的CourseClass2 课程中,我有var numberPlaces = 0,他的价值是
override func viewDidLoad() {
super.viewDidLoad()
numberPlaces = HomeClass.globalLimit
}
但是就像你在我的准备函数中看到的那样,当我直接从 HomeClass 进入 CourseClass2 时,我想要 numberPlaces = filteredList.count 的值,但它当然不起作用,因为它与 numberPlaces = HomeClass.globalLimit 在CourseClass2 的 viewDidload,那么我该如何解决这个问题呢?
【问题讨论】:
-
只需将 var numberPlaces = HomeClass.globalLimit 声明为存储属性并从 viewDidLoad 中删除其初始化
-
我该怎么做?
-
您在 CourseClass2 中声明 numberPlaces 的位置,只需为其赋值即可。这将是它的默认值,稍后可以更改,这就是您将在 HomeClass 中执行的操作
-
我试过了,但是不行
-
不要将
numberOfPlaces设置为您的viewDidLoad。使该值的设置成为调用viewController的责任。