2017-11-18 5 views
3

HomeClassstatic 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 

    } 

が、私は012に来るとき、あなたは私の準備機能で見ることができるようなもので、これですから直接HomeClass私はnumberPlaces = filteredList.countの値が欲しいですが、それはそれに逆さまになるので、それは CourseClass2のviewDidloadにあるので、私はこの問題を解決することができますか?このように

+0

だけ宣言:

var numberPlaces: Int? 

はそれがnilの場合、負荷なかったビューで確認してくださいvar numberPlaces = HomeClass.globalLimitをストアドプロパティとして使用し、その初期化をviewDidLoadから削除します –

+0

どうしたらいいですか? – arc4Random

+0

CourseClass2でnumberPlacesを宣言したところで、値を与えます。これは後で変更することができるデフォルト値、つまりHomeClassで行う予定です –

答えて

0

試してみてください。

はオプションとしてごnumberPlacesのVARを設定します。

override func viewDidLoad() { 
    super.viewDidLoad() 

    if numberPlaces == nil { 
     numberPlaces = HomeClass.globalLimit 
    } 
} 
関連する問題