2012-03-12 7 views
0

私は-viewDidLoad:メソッドで開始位置マネージャを持っています。同様に、ユーザーが別のビューに移動するときに停止する必要があります。それ、どうやったら出来るの?UIViewControllerが消えるときに位置マネージャを停止する方法

私は-viewDidUnloadで止めようとしましたが、メモリが不足しているときだけ呼び出されると思うので動作しませんでした。

答えて

2

-viewWillAppear:-viewWillDisappear:を使用して、-viewDidLoad/-viewDidUnloadの代わりに、ユーザーの検索と停止を行うことができます。それを行うより良い方法があるかもしれません。それは私が自分のアプリケーションの1つでやったやり方です。

また、UIApplicationの通知を登録することもできます。 UIApplicationWillResignActiveNotification、ユーザーがホームボタンを押した場合の更新場所を停止します。私はそれがMaps.appの実装している動作のようだと思う。

+0

viewWillDisappearも試しましたが、まだ位置の更新が発生しています。 – user836026

+0

「位置更新はまだ実行中です。」というメッセージは、ステータスバーのアイコンを参照していますか? – Canopus

+0

いいえ、私は "locationManager:(CLLocationManager *)"がまだ呼び出されることを意味します。私は他の提案 "UIApplicationWillResignActiveNotification"を試して、それは動作します! – user836026

1

新しいUIViewを作成/表示するメソッド/コードで停止することができます。

+0

UIViewはストーリーボードで作成されているため、私はそれを制御できません。 – user836026

+1

その後、UIViewController prepareForSegueで適切に開始/停止することができます。送信者: –

関連する問題