如何从不同的swift文件访问一个类中的所有对象

时间:2015-09-01 07:28:35

标签: ios swift uiviewcontroller iboutlet

我正在尝试从不同的swift文件和类中更改一些IBOutlet的属性。例如:在类B中运行函数(类型UIView)来改变类A中的IBOutlet的alpha(类型为UIViewController)。我已经尝试了许多不同的方式来访问它们(扩展,超类)但我仍然得到这些出口的零值。我知道这是因为视图已分配但未加载,但我找不到一种方法来正确存储和访问类“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
}

提前致谢!

1 个答案:

答案 0 :(得分:3)

请勿尝试再次分配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的基本概念(特别是对象生命周期,分配等)。