从 AppDelegate 将对象传递给 ViewController

Passing an object to a ViewController from AppDelegate

在我的应用程序中,Connection 对象在我的 AppDelegate.swiftapplicationDidBecomeActive() 中初始化。

如何将 Connection 对象传递给我的 ViewController 子类?

Connection 这样的实例通常在整个应用程序中都是必需的,因此更好的想法是创建所需对象的共享实例并在我们需要的任何地方使用。

class Connection{
  static let sharedConnection = Connection()
  ....
}

用法:

let connection = Connection.sharedConnection
  • AppDelegate中创建一个属性

    private weak var viewController : ViewController?
    
  • viewDidLoad 的视图控制器中,将 self 分配给那个 属性

    let appDelegate = UIApplication.shared.delegate as! AppDelegate
    appDelegate.viewController = self
    

现在您可以从 AppDelegate 访问视图控制器