2017-11-18 43 views
3

在我HomeClass有一個static var globalLimit: Int = 0和我通過他的其他類值,這是我準備的功能屬性不同的值給一個變量取決於您從中來的類(SWIFT)

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我想numberPlaces = filteredList.count的價值,但當然它不起作用,因爲它違背它numberPlaces = HomeClass.globalLimit在viewDidload的CourseClass2,所以我怎麼能解決這個問題?

+0

只是聲明var numberPlaces = HomeClass.globalLimit作爲存儲屬性,並從viewDidLoad中刪除它的初始化 –

+0

我該怎麼做? – arc4Random

+0

你已經在CourseClass2中聲明瞭numberPlaces,只是給它賦值。這將是它的默認值,它可以稍後改變,這就是你將要在HomeClass –

回答

0

嘗試這種方式:

設置你的numberPlaces var當成可選:

var numberPlaces: Int? 

然後在視圖檢查並加載,如果它是零:

override func viewDidLoad() { 
    super.viewDidLoad() 

    if numberPlaces == nil { 
     numberPlaces = HomeClass.globalLimit 
    } 
} 
相關問題