簡體   English   中英

如何從不同的swift文件訪問一個類中的所有對象

[英]How to access all objects in one class from a different swift file

我正在嘗試從不同的swift文件和類更改一些IBOutlet的屬性。 例如:運行類B(類型UIView)中的函數以更改類A(類型UIViewController)中IBOutlet的alpha。 我嘗試了多種不同的訪問方式(擴展名,超類),但對於這些出口,我仍然獲得nil值。 我知道這是因為視圖是為分配但未加載的,但是我無法找到正確存儲和訪問類“ A”的插座的方法來避免這種情況。 這是我的“ B”類代碼:

 let mainView = MainViewController()  //Code in B
  var changeAlpha = mainView.changeText() //Code in B

func changeAlpha() {               //Code in class MainViewController
    self.hotLabel.alpha = 0
}

提前致謝!

不要嘗試再次分配MainViewController

嘗試改為訪問現有的MainViewController

var parentResponder: UIResponder? = self
        while parentResponder != nil {
            parentResponder = parentResponder!.nextResponder()
            if let mainView = parentResponder as? MainViewController {
                var changeAlpha = mainView.changeText()
            }
        }

當您嘗試創建MainViewController類的對象(已經包含您的數據)時,您先前存儲的值將無法訪問,因為這兩個類對象的引用將不同

您必須將現有的MainViewController類傳遞給B類,或者嘗試訪問現有的MainViewController或實現消息傳遞概念。

解決此類問題的唯一方法是,在編寫代碼之前,嘗試研究OOPS基本概念(尤其是對象生命周期,分配等)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM