Swift:函数在每个加载视图控制器中运行多次

时间:2018-07-16 12:53:40

标签: swift quickblox

我在viewController.swift

中使用以下代码
func didReceiveNewSession(_ session: QBRTCSession, userInfo: [String : String]? = nil) {
    print("PLAY SESSION")
}

我打开应用程序,并在收到会话后得到一个日志PLAY SESSION

但是,如果我打开应用程序,然后转到viewControllerPage.swift,然后再次返回到viewController.swift,则在接收会话之后,我将收到两个日志PLAY SESSION

结果是,如果我打开viewController.swift 7-8次,则在接收会话后打印7-8 PLAY SESSION

即使我每次viewController.swift打开,我也只希望获得一次会话

我要didReceiveNewSession加载一次

1 个答案:

答案 0 :(得分:2)

这正是viewDidload和viewDidAppear的用途

override func viewDidLoad() {
    //insert the code you only want to run once here
}

override func viewDidAppear(_ animated: Bool){
    //insert the code you want to run every time you load the VC
}

您是否有特定的原因不想使用它们?或者,您可以使用viewWillAppear()代替viewDidAppear()