問題タブ [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.

0 投票する
1 に答える
505 参照

swift - SwiftUI で @State と fullScreenCover を使用してビューを切り替える方法

SwiftUI で @State と fullScreenCover を使用してビューを切り替える方法を理解しようとしています。

メイン ビューと 2 つの単純なビュー (View1およびView2) があります。View1ボタンのタップ時"Show view 1"、およびボタンView2の入力時に開く必要があり"Show view 2"ます。@Stateまた、これが機能するように 2 つの変数を作成し、 .View1( ActiveFullscreenviewenum)で初期化しました。

問題は、ボタンView1をタップしても常に表示されることです。Show view 2ボタンをタップしてactiveFullscreenView変数に値を与えると、.View2変数が変更されてfullScreenView.

を呼び出してshowFullscreenView変数を変更したためだと思いましたが、その後デフォルト値が.View1変更されなかったので変更しませんでした。

これも試しました:

2 番目の仮定は、この変数に初期値を与えるべきではないということでした。ただし、この場合、便利ではない追加の初期化コードが追加されます。

現在、説明されている問題がある次のコードがあります。

問題の解決に関連するヘルプをいただければ幸いです。fullscreenCover を使用して個別のビューを表示するのと同じ結果を得る方法についての便利な方法は高く評価されています。

Xcode 12.4、最新の iOS 14 での作業

0 投票する
1 に答える
708 参照

swiftui - リストが正しく更新されているにもかかわらず、コンテキスト メニューに古い状態が表示されるのはなぜですか?

Context Menu下に正しいデータが表示されているにもかかわらず、表示されているデータが間違っているという問題に直面していListます。問題は、最初のアイテムのコンテキスト メニューでアクションをトリガーListすると、正しいデータが再レンダリングされて表示される様子を確認できますが、最初のアイテムのコンテキスト メニューを再度トリガーすると、正しい状態。2 番目の項目のコンテキスト メニューを開くと、正しい状態が表示されますが、ここで "Two" を選択して同じコンテキスト メニューを開くと、State間違った状態になります (表示されるはずのときに、選択された 1 つだけが表示されます)。 1 & 2、List表示のように)。

1つずれているように感じます(最新の状態ではなく以前の状態を提示するなど)。それが単なるバグなのか、それとも間違った使い方をしているのかわかりません。

問題を再現するコードのスニペットを次に示します。

問題を示すビデオ: https://twitter.com/xmollv/status/1412397838319898637

ありがとう!

編集:

iOS 15 のリグレッション (少なくともリリース候補版) のようですが、iOS 14.6 では問題なく動作します。