我从未想过这会很复杂,但显然确实如此。
我有一个标签式视图控制器。其中一个ViewControllers有一个计时器。
一旦使用选项卡控制器选择了另一个视图控制器,或者选择了任何其他视图(使用表视图行选择),我希望计时器停止。
我不知道为什么,但我无法弄清楚如何做到这一点。我假设我可以将view.idvalidate()放在与选项卡选择关联的ViewControllers中的viewDidAppear()中,但它不起作用。
有什么建议吗?
答案 0 :(得分:1)
尝试使用tabBarController:didSelectViewController:
告诉代表用户在标签栏中选择了一个项目。
func tabBarController(tabBarController: UITabBarController, didSelectViewController viewController: UIViewController) {
if (viewController == targetViewController) {
viewController.timer.invalidate()
}
}
答案 1 :(得分:0)
视图有许多可以接收的通知,您可以为其编写处理程序。
正如我的评论所述,其中一个是 viewWillDisappear 。
他们是:
viewWillAppear中:
viewDidAppear:
viewWillDisappear:
viewDidDisappear:
它们可以让您对观看的进展和反应做出反应。
UIViewController和UIView上的文档值得花时间深入阅读,因为它们是Cocoa中所有显示和交互的基础。