我正在使用具有多个视图控制器的应用。我有一个主菜单视图控制器,带有计时器的游戏视图控制器和一个游戏视图控制器。
主菜单有一个按钮,可以将您带到游戏视图控制器。有一个计时器启动,当它达到零时,它会自动带你到视图控制器上游戏。
问题是,如果我在游戏视图控制器中并决定返回主菜单,则计时器继续。
然后我收到一条警告信息:
Warning: Attempt to present <...> on <...> whose view is not in the window hierarchy!
当我更改视图控制器时,如何让计时器停止?
答案 0 :(得分:1)
在视图消失之前使计时器无效:
override func viewWillDisappear(animated: Bool) {
timer.invalidate()
timer = nil
super.viewWillDisappear(animated)
}