問題タブ [swift5.1]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - ビューに BindableObject を渡す
Apple のセッションとチュートリアルから、BindableObject をビューに渡す 2 つのオプションがあります。
- ラッパーを使用
BindableObject
して階層の最上位ビューで真のソースとして宣言を使用し、それを宣言された他のビューに渡します。@ObjectBinding
@Binding
- ラッパーを使用
BindableObject
して階層内のトップ ビューで真のソースとして宣言を使用し、モディファイアを使用してトップ ビューを初期化し、それを他のビューまたは宣言済みまたは使用に渡します(この場合、SwiftUI によって自動的に割り当てられ、必要はありません)。 init で渡します)。@EnviromentObject
.enviroment(BindableObject)
@Binding
@EnviromentObject
BindableObject
アイテムのリストがあり、他のビュー(またはRowViewまたは別の画面)のアイテムの1つを変更したい場合は、ユーザー入力の処理チュートリアルから、次のことが必要です。BindableObject
BindableObject
上記のいずれかの方法を使用して、 をより深いビューに 渡します。- 選択したアイテムをこのビューに渡します。
BindingView
リスト内のアイテムを見つけて、アイテムのプロパティをバインドしますBindableObject
。
質問を明確にするためのいくつかのコード:
メッセージモデルとBindableObject
アイテムのリストを表す MessageView 構造体 MessagesView
特定のアイテムの状態を更新するためのトグルを持つ MessageRowBindableObject
このアプローチは、上記のチュートリアルに示されています。
質問:@Binding
Message を として個別に渡し、子ビューで直接操作し
たかったのですが、これを実装できませんでした。私は少し混乱しました。後でインデックスBindableObject
を使用してアイテムをバインドするために、選択されたアイテムの両方を任意のビュー(バインディングを処理する必要がある)に渡すのは適切な方法ですか? 完全ではなくその一部を渡し、この部分をバインドBindableObject
できるようにする他の方法はありますか(それは真実のソースでなければなりません)、私たちの場合、この部分はですか?BindableObject
Message
swift - SwiftUI:アラートに.presentation修飾子を使用するには? コンパイラの型チェック エラーの取得
UIKit で作成したクイズ アプリを楽しみのために SwiftUI に再構築していますが、以下の最後の .presentation 修飾子でコンパイラ エラーが発生しました。
これをどのように分割するかはわかりません。それは十分に単純に思えます。2012 MacBook Pro Retina i7 を実行しています。