ブール値(SwiftUI)に基づいてオブジェクトのバインディングソースを変更するにはどうすればよいですか?

binaryPilot84

私が持っているObservedObject私は、フォームのユーザーからの入力に基づいてに値を渡すことTextFieldsただし、CoreLocationを使用するオプションをユーザーに持たせたいと思います。彼らがトグルを変更するとき、私はそのうちの1つの入力値TextFieldsを私のCoreLocation出版社に切り替えたいですコードスニペットは次のとおりです。

@EnvironmentObject var locationManager: LocationManager
@ObservedObject var calculator: CalculatorObject
@State var useGPS: Bool = false

if self.useGPS {
   //I'm not sure what to put here
   //I’ve tried several options to set the binding element of the
   //   CalculatorObject to the speed object of the
   //   locationManager but they don’t change the values within
   //   the calculations. 
}

var body: Some View {
    VStack {
       Toggle(isOn: $useGPS) {
          Text("Use GPS for Ground Speed")
       }

       if useGPS {
          Text(locationManager.locationInfo.speed)
       } else {
          TextField("Ground Speed", text: self.$calculator.groundSpeed)
       }
    }
}

さまざまなオプションを試しましたが、ロケーションマネージャーからデータを取得してデータを渡すことができないようです。CalculatorObject.トグルを変更すると、UIに速度の変化表示されることを確認したので、ロケーションパブリッシャーが機能しています。ここでバインディングソースを変更する方法がわかりません。

binaryPilot84

@Asperiによって提供された回答は、私を正しい方向に向けましたが、発行元と正しく連携しませんでした。これが私がやったことで、結局はうまくいきました:

   if useGPS {
      TextField("<Other_title_here>", text: self.$calculator.groundSpeed)
           .onReceive(locationManager.objectWillChange, perform: { output in
               self.calculator.groundSpeed = output.speed
           })
   } else {
      TextField("Ground Speed", text: self.$calculator.groundSpeed)
   }

関数locationManager.objectWillChange内でパブリッシャーを使用するonReceiveと、変更が正しくサブスクライブされます

私を正しい方向に向けてくれた@Asperiに感謝します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Python 3でバイトオブジェクトのエンコーディングを変更するにはどうすればよいですか?

分類Dev

PowerShellのホスト名に基づいてデバイスのオブジェクトを単一のオブジェクトにフィルタリングするにはどうすればよいですか?

分類Dev

ディクショナリオブジェクトを含むリストの場合、キーの値に基づいてリストをフィルタリングするにはどうすればよいですか?

分類Dev

属性の値に基づいてAngularJsディレクティブテンプレートを変更するにはどうすればよいですか?

分類Dev

Observableのメンバーオブジェクトのフィールドの値を変更するにはどうすればよいですか?

分類Dev

Androidデータバインディングでオブジェクトのメソッドを使用するにはどうすればよいですか?

分類Dev

キーに基づいてJSONをフィルタリングするにはどうすればよいですか?すべてのオブジェクトに対して1つのタイプのキーのリストしかありません

分類Dev

jQueryのオブジェクトの配列の比較に基づいてキー値を変更するにはどうすればよいですか?

分類Dev

SwiftUIのバインディングオブジェクトにnilを割り当てるにはどうすればよいですか?

分類Dev

ネストされたオブジェクト配列のキーに基づいてオブジェクト配列をフィルタリングするにはどうすればよいですか?

分類Dev

jqを使用して、オブジェクトのJSONストリームをオブジェクトプロパティの値に基づいて個別のファイルに分割するにはどうすればよいですか?

分類Dev

連続する属性に基づいて、クラスのオブジェクトをグループ化するにはどうすればよいですか?

分類Dev

JavaScriptオブジェクトのステータス値に基づいてレコードをフィルタリングするにはどうすればよいですか?

分類Dev

すべてのイオンページのパディングのデフォルト値を変更するにはどうすればよいですか?

分類Dev

名前の一致に基づいてオブジェクトをフィルタリングするにはどうすればよいですか?

分類Dev

インデックスに基づいて、動的オブジェクト配列の状態を更新するにはどうすればよいですか?

分類Dev

チェックボックスがオンになっているかどうかに基づいて、入力テキストフィールドの値を変更するにはどうすればよいですか?

分類Dev

オブジェクトのキーと値でオブジェクトをフィルタリングするにはどうすればよいですか?

分類Dev

文字列値に基づいてオブジェクトをインスタンス化するにはどうすればよいですか

分類Dev

データバインディングを使用して、オブジェクトのリストボックスからテキストブロックにデータを表示するにはどうすればよいですか?

分類Dev

多対多の関連オブジェクトのフィールドに基づいて、djangoでモデルをフィルタリングするにはどうすればよいですか?

分類Dev

オブジェクトの配列にマッピングしてスタイルを変更するにはどうすればよいですか?

分類Dev

値に基づいてオブジェクト キーをグループ化するにはどうすればよいですか?

分類Dev

値がインデックスの配列に基づいているブール配列を作成するにはどうすればよいですか?

分類Dev

セル値に基づいてwpfデータバインドグリッドセルを変更するにはどうすればよいですか?

分類Dev

HTML範囲スライダーでオーディオオブジェクトの音量を変更するにはどうすればよいですか?

分類Dev

SwiftUIのバインディング列挙型に基づいてビューのスタイルを変更するにはどうすればよいですか?

分類Dev

オブジェクトIDの別の配列に基づいてMongoDBオブジェクトIDを持つオブジェクトの配列をフィルタリングするにはどうすればよいですか?

分類Dev

AngularJS:ディレクティブスコープのオブジェクトに関連付けられているコントローラースコープを変更時に更新するにはどうすればよいですか?

Related 関連記事

  1. 1

    Python 3でバイトオブジェクトのエンコーディングを変更するにはどうすればよいですか?

  2. 2

    PowerShellのホスト名に基づいてデバイスのオブジェクトを単一のオブジェクトにフィルタリングするにはどうすればよいですか?

  3. 3

    ディクショナリオブジェクトを含むリストの場合、キーの値に基づいてリストをフィルタリングするにはどうすればよいですか?

  4. 4

    属性の値に基づいてAngularJsディレクティブテンプレートを変更するにはどうすればよいですか?

  5. 5

    Observableのメンバーオブジェクトのフィールドの値を変更するにはどうすればよいですか?

  6. 6

    Androidデータバインディングでオブジェクトのメソッドを使用するにはどうすればよいですか?

  7. 7

    キーに基づいてJSONをフィルタリングするにはどうすればよいですか?すべてのオブジェクトに対して1つのタイプのキーのリストしかありません

  8. 8

    jQueryのオブジェクトの配列の比較に基づいてキー値を変更するにはどうすればよいですか?

  9. 9

    SwiftUIのバインディングオブジェクトにnilを割り当てるにはどうすればよいですか?

  10. 10

    ネストされたオブジェクト配列のキーに基づいてオブジェクト配列をフィルタリングするにはどうすればよいですか?

  11. 11

    jqを使用して、オブジェクトのJSONストリームをオブジェクトプロパティの値に基づいて個別のファイルに分割するにはどうすればよいですか?

  12. 12

    連続する属性に基づいて、クラスのオブジェクトをグループ化するにはどうすればよいですか?

  13. 13

    JavaScriptオブジェクトのステータス値に基づいてレコードをフィルタリングするにはどうすればよいですか?

  14. 14

    すべてのイオンページのパディングのデフォルト値を変更するにはどうすればよいですか?

  15. 15

    名前の一致に基づいてオブジェクトをフィルタリングするにはどうすればよいですか?

  16. 16

    インデックスに基づいて、動的オブジェクト配列の状態を更新するにはどうすればよいですか?

  17. 17

    チェックボックスがオンになっているかどうかに基づいて、入力テキストフィールドの値を変更するにはどうすればよいですか?

  18. 18

    オブジェクトのキーと値でオブジェクトをフィルタリングするにはどうすればよいですか?

  19. 19

    文字列値に基づいてオブジェクトをインスタンス化するにはどうすればよいですか

  20. 20

    データバインディングを使用して、オブジェクトのリストボックスからテキストブロックにデータを表示するにはどうすればよいですか?

  21. 21

    多対多の関連オブジェクトのフィールドに基づいて、djangoでモデルをフィルタリングするにはどうすればよいですか?

  22. 22

    オブジェクトの配列にマッピングしてスタイルを変更するにはどうすればよいですか?

  23. 23

    値に基づいてオブジェクト キーをグループ化するにはどうすればよいですか?

  24. 24

    値がインデックスの配列に基づいているブール配列を作成するにはどうすればよいですか?

  25. 25

    セル値に基づいてwpfデータバインドグリッドセルを変更するにはどうすればよいですか?

  26. 26

    HTML範囲スライダーでオーディオオブジェクトの音量を変更するにはどうすればよいですか?

  27. 27

    SwiftUIのバインディング列挙型に基づいてビューのスタイルを変更するにはどうすればよいですか?

  28. 28

    オブジェクトIDの別の配列に基づいてMongoDBオブジェクトIDを持つオブジェクトの配列をフィルタリングするにはどうすればよいですか?

  29. 29

    AngularJS:ディレクティブスコープのオブジェクトに関連付けられているコントローラースコープを変更時に更新するにはどうすればよいですか?

ホットタグ

アーカイブ