問題タブ [swiftui-foreach]
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 - SwiftUIはStepperでTextFieldを動的に追加/削除します
こんにちは、私はSwiftUIを初めて使用し、急勾配のプラスまたはマイナスが押されたときにTextFieldを追加または削除するきちんとした方法を見つけようとしています。
私は現在持っています
ただし、これにより、onDecrement が呼び出されたときに Index out of bounds 例外が発生します。String を Identifiable に準拠するように (@State
構造体宣言の内側で)ラップしようとしましたForEach(answers)
が、これを使用すると、変数が更新されないという警告が生成されます。
ここに投稿された解決策を試しましたが、役に立ちませんでした。
この結果は、ボタンを押したときに API 呼び出しを行う別の関数に渡されるため、永続的に保存する必要はありません。
これについての助けをいただければ幸いです。
ios - 同じリスト内の複数の ForEach と 1 つの ForEach を持つ複数のリスト
私はiOSとSwiftUIが初めてで、「目標」アプリを作って遊んでいます。私が参照しているコードは単純なリストであり、完了とマークされた目標の上に未完了の目標がリストされています。ForEach
複数の を同じ の中に入れようとすると、この興味深い問題に遭遇しましたList
。
以下のコードを使用した場合、(最初の foreach から) 不完全なゴールをタップすると、そのゴールは境界の下に移動しますが、GoalView()
コンストラクターは再実行されないため、ゴールはまだ不完全であるように見え、さらにはまだgoal.markComplete()
クラッシュの原因となる元のクロージャー ( ) を保持します。today
は であり、および@ObservedObject
の呼び出しによって更新されることに注意してください。markComplete()
markIncomplete()
しかし、2 つの積み重ねられたリスト (以下を参照) を使用するように切り替えると、問題はなくなります。タップして目標を完了すると、それが一番下のリストに移動し、GoalView()
コンストラクターが実行され、目標の外観と動作が変更されます。
この下部の実装がクロージャーGoalView()
で再実行される原因となる根本的な違いは何ですか? ForEach
しませんか?私は特に、両方の実装が完了した目標を境界の下に移動する理由について混乱していForEach
ます。説明/ヒントをいただければ幸いです。
編集: today
(タイプDay
) とgoal
(タイプGoal
) は両方ともNSManagedObject
s / CoreData エンティティです。completedGoals
以下に含まれているのは、 from an extension toの私の定義ですDay
。これにより、2 つがどのように定義され、関連しているかが明らかになります。それぞれDay
に呼び出された関係がcompletedGoals_
ありincompleteGoals_
、その日にリンクされた順序付けられていない目標のセットです。
markComplete()
そして、ここに拡張からへの大まかな実装がありますGoal
(へdaysThatDidntComplete_
の逆の関係completedGoals_
であり、不完全と同じです):