如何从另一个 swift 文件访问一个 class 中的所有对象

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

我正在尝试从不同的 swift 文件和 class 更改一些 IBOutlet 的属性。例如:class B(类型 UIView)中的 运行 函数改变 class A(类型 UIViewController)中 IBOutlet 的 alpha。我已经尝试了许多不同的方式来访问它们(扩展,superclasses)但是我仍然得到这些网点的零值。我知道这是因为视图已分配但未加载,但我找不到正确存储和访问 class "A" 的出口以避免这种情况的方法。这是我的代码 class "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 class 的对象(已经包含您的数据)时,您之前存储的值将无法访问,因为引用将不同这两个 class 个对象

您必须将现有的 MainViewController class 传递到 B class 或尝试访问现有的 MainViewController 或实施消息传递概念。

解决此类问题的唯一方法是,在编写代码之前尝试研究 OOPS 基本概念(尤其是对象生命周期、分配等)。