問題タブ [swiftui-state]
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.
swift - SwiftUI で @State と fullScreenCover を使用してビューを切り替える方法
SwiftUI で @State と fullScreenCover を使用してビューを切り替える方法を理解しようとしています。
メイン ビューと 2 つの単純なビュー (View1
およびView2
) があります。View1
ボタンのタップ時"Show view 1"
、およびボタンView2
の入力時に開く必要があり"Show view 2"
ます。@State
また、これが機能するように 2 つの変数を作成し、 .View1
( ActiveFullscreenview
enum)で初期化しました。
問題は、ボタンView1
をタップしても常に表示されることです。Show view 2
ボタンをタップしてactiveFullscreenView変数に値を与えると、.View2
変数が変更されてfullScreenView
.
を呼び出してshowFullscreenView
変数を変更したためだと思いましたが、その後デフォルト値が.View1
変更されなかったので変更しませんでした。
これも試しました:
2 番目の仮定は、この変数に初期値を与えるべきではないということでした。ただし、この場合、便利ではない追加の初期化コードが追加されます。
現在、説明されている問題がある次のコードがあります。
問題の解決に関連するヘルプをいただければ幸いです。fullscreenCover を使用して個別のビューを表示するのと同じ結果を得る方法についての便利な方法は高く評価されています。
Xcode 12.4、最新の iOS 14 での作業
swiftui - リストが正しく更新されているにもかかわらず、コンテキスト メニューに古い状態が表示されるのはなぜですか?
Context Menu
下に正しいデータが表示されているにもかかわらず、表示されているデータが間違っているという問題に直面していList
ます。問題は、最初のアイテムのコンテキスト メニューでアクションをトリガーList
すると、正しいデータが再レンダリングされて表示される様子を確認できますが、最初のアイテムのコンテキスト メニューを再度トリガーすると、正しい状態。2 番目の項目のコンテキスト メニューを開くと、正しい状態が表示されますが、ここで "Two" を選択して同じコンテキスト メニューを開くと、State
間違った状態になります (表示されるはずのときに、選択された 1 つだけが表示されます)。 1 & 2、List
表示のように)。
1つずれているように感じます(最新の状態ではなく以前の状態を提示するなど)。それが単なるバグなのか、それとも間違った使い方をしているのかわかりません。
問題を再現するコードのスニペットを次に示します。
問題を示すビデオ: https://twitter.com/xmollv/status/1412397838319898637
ありがとう!
編集:
iOS 15 のリグレッション (少なくともリリース候補版) のようですが、iOS 14.6 では問題なく動作します。