私は-viewDidLoad:
メソッドで開始位置マネージャを持っています。同様に、ユーザーが別のビューに移動するときに停止する必要があります。それ、どうやったら出来るの?UIViewControllerが消えるときに位置マネージャを停止する方法
私は-viewDidUnload
で止めようとしましたが、メモリが不足しているときだけ呼び出されると思うので動作しませんでした。
私は-viewDidLoad:
メソッドで開始位置マネージャを持っています。同様に、ユーザーが別のビューに移動するときに停止する必要があります。それ、どうやったら出来るの?UIViewControllerが消えるときに位置マネージャを停止する方法
私は-viewDidUnload
で止めようとしましたが、メモリが不足しているときだけ呼び出されると思うので動作しませんでした。
-viewWillAppear:
と-viewWillDisappear:
を使用して、-viewDidLoad
/-viewDidUnload
の代わりに、ユーザーの検索と停止を行うことができます。それを行うより良い方法があるかもしれません。それは私が自分のアプリケーションの1つでやったやり方です。
また、UIApplication
の通知を登録することもできます。 UIApplicationWillResignActiveNotification
、ユーザーがホームボタンを押した場合の更新場所を停止します。私はそれがMaps.appの実装している動作のようだと思う。
新しいUIViewを作成/表示するメソッド/コードで停止することができます。
UIViewはストーリーボードで作成されているため、私はそれを制御できません。 – user836026
その後、UIViewController prepareForSegueで適切に開始/停止することができます。送信者: –
viewWillDisappearも試しましたが、まだ位置の更新が発生しています。 – user836026
「位置更新はまだ実行中です。」というメッセージは、ステータスバーのアイコンを参照していますか? – Canopus
いいえ、私は "locationManager:(CLLocationManager *)"がまだ呼び出されることを意味します。私は他の提案 "UIApplicationWillResignActiveNotification"を試して、それは動作します! – user836026