从AppDelegate将对象传递给ViewController

时间:2019-01-14 10:08:17

标签: swift cocoa-touch sqlite.swift

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

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

2 个答案:

答案 0 :(得分:4)

  • AppDelegate中创建属性

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

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

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

答案 1 :(得分:0)

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

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

用法:

let connection = Connection.sharedConnection