Swift:每个加载视图控制器的函数运行多次
Posted
技术标签:
【中文标题】Swift:每个加载视图控制器的函数运行多次【英文标题】:Swift: functions run several times per load viewcontroller 【发布时间】:2018-07-16 12:53:40 【问题描述】:我在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】:这正是 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()
【讨论】:
以上是关于Swift:每个加载视图控制器的函数运行多次的主要内容,如果未能解决你的问题,请参考以下文章
swift didSelectRowAtIndexPath 可以多次调用
Swift - tableview 加载错误 - 可怕的 SIGBART