私は、ユーザーの場所を追跡することを含むiosアプリケーションを作成しています。私は、ユーザーがどのviewcontrollerに関係なく、場所を追跡する必要があります。ユーザーが新しいviewcontrollerに移動するたびに、場所の更新をオン/オフすることなく、この一定の位置追跡の効果を得る方法はありますか?私は何らかのシングルトンを必要としますか?Xcode:シームレスに位置更新を維持する
答えて
ViewControllerではなく、他のオブジェクトクラスにlocationManagerデリゲートを実装します。次に、このオブジェクトの内部で、varを含む場所を作成し、このvarをすべてのView Controllerで使用します。このオブジェクトをシングルトンとして使用するか、コントローラ間で渡すことができます。
ロケーションマネージャとその代理人を使用する方法はいくつかあります。最良の方法は、アプリケーションデリゲートでロケーションマネージャを実装することです。他の人は、モデルオブジェクトの場所を制御している間にビューコントローラでそれを使用します。
私は、Damian Dudyczの提案のように、別のモデルクラスを使用することをお勧めします。これはシングルトンである必要はありません。たとえば、アプリケーションに必要なすべての場所固有の情報を提供するクラスを定義します。このクラスには、アプリでの場所固有のニーズに必要なプロパティとメソッドがあります。次に、プロジェクト機能のバックグラウンドでロケーションの更新を有効にします。例えば、あなたがこのクラスで同じCLLocation特定のメソッドを置くことができます
class myLocationClass: NSObject, CLLocationManagerDelegate {
//Properties
var myLocations = [CLLocations]()
var myGeocodeName = ""
var myDistanceCovered = 0.0
var myLocationManager : CLLocationManager? //You can also make this lazy to prevent optional properties
var ... etc.
:
あなたは、その後のようなクラスで終わる可能性
func getLocationName(from location: CLLocation) {
//Your reverse geocoding code here.
}
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
//Your location update stuff here.
}
をすることができますあなたのさまざまなビューコントローラから現在、すべてのパブリックプロパティとメソッドを呼び出して、場所の更新を開始し、値を取得し、場所の更新を停止します。私はこのようにしています。私の場所コードはすべてひとつのクラスの中にあるので、コードを維持しておくのは大変です。
あなたのクラスがかなり大きくなる可能性があり、また維持管理が難しいことがあります。私にとって、これはまだ起こっていない。
これが役に立ちます。
- 1. WPF DataGrid - 更新後にスクロール位置を維持する
- 2. 更新時のタブの位置を維持する
- 3. 位置を維持しながらShiny DataTableの行を更新
- 4. ポストバック時に更新パネルのMULTISELECT ListBoxスクロール位置を維持します。
- 5. ListViewの位置を維持する
- 6. ラッピングブロックの位置を維持する
- 7. ラベルのスクロールバー位置を維持する
- 8. クリックビューでスクロール位置を維持する
- 9. ASP更新パネル内のASPリストボックスのスクロール位置を維持する
- 10. ビューコントローラを変更するときのスクロール位置を維持
- 11. ListViewでスクロール位置を維持しながらSimpleCursorAdapterを更新します。
- 12. スクロールバーの位置に基づいてdivのスクロール位置を維持する
- 13. RecyclerViewページ位置がスクロール位置を維持していない
- 14. CSS3アニメーションと終了位置を維持
- 15. 位置更新
- 16. 方向変更時にWebViewコンテンツのスクロール位置を維持する
- 17. Emacs - 行を変更するときの水平位置を維持する
- 18. コンテナを正確な位置に維持する
- 19. ナビゲーション中に配列の位置を維持する
- 20. フィルタリング後にradgridのカーソル位置を維持する方法は?
- 21. hide/showにQDialogの位置を維持する方法
- 22. html/javascriptでポストバック時にdivスクロール位置を維持する
- 23. 実行時にAntlrでソース位置を維持する
- 24. スクロールバーを同じ位置に維持するライブチャート
- 25. contentititableにキャレットの位置を維持する
- 26. ハイパーリンクポストバック後にスクロール位置を維持する
- 27. ズームアウト時にカメラの位置を維持する方法は?
- 28. ポストバック時にページ内のdivのスクロール位置を維持する
- 29. 印刷中にDIVのスクロール位置を維持する
- 30. スクロール位置をスムースに維持する方法
@boraseoksoonすべての1つの質問に「感謝の気持ち」を追加しないでください。質問に感謝する必要はありません。 –