我在-viewDidLoad:
方法中有启动位置管理器。同样,当用户移动到另一个视图时,我需要停止它。我怎么做?如何在UIViewController消失时停止位置管理器
我试图阻止它在-viewDidUnload
,但它没有奏效,因为我认为它只在内存不足时被调用。
我在-viewDidLoad:
方法中有启动位置管理器。同样,当用户移动到另一个视图时,我需要停止它。我怎么做?如何在UIViewController消失时停止位置管理器
我试图阻止它在-viewDidUnload
,但它没有奏效,因为我认为它只在内存不足时被调用。
您可以使用-viewWillAppear:
和-viewWillDisappear:
来启动和停止定位用户,而不是-viewDidLoad
/-viewDidUnload
。可能有更好的方法来做到这一点;这是我在自己的应用程序中完成的方式。
或者,您可以注册UIApplication
通知,例如, UIApplicationWillResignActiveNotification
,以防止用户按下主页按钮时更新位置。我认为这是Maps.app实现的行为。
您可以在创建/显示新UIView的方法/代码中停止它。
UIView由故事板创建,所以我无法控制。 – user836026 2012-03-12 19:45:32
然后,您可以在UIViewController prepareForSegue中适当地启动/停止它:sender: – 2012-03-12 19:58:05
我也尝试viewWillDisappear,但我注意到位置更新仍在触发。 – user836026 2012-03-12 20:10:48
“位置更新仍在触发”,你是指状态栏中的图标? – Canopus 2012-03-12 20:14:25
不,我的意思是“locationManager:(CLLocationManager *)”仍然被调用。但我尝试了其他建议“UIApplicationWillResignActiveNotification”,它的工作原理! – user836026 2012-03-12 20:19:18