![](/img/trans.png)
[英]Access objects in ViewController from a different class in 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.