問題タブ [ios-navigationview]
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: NavigationViews を使用して新しいナビゲーション スタックに切り替える方法
現在、SwiftUI Beta 5 を使用しています。一連のビューをナビゲートするワークフローがあります。最後のビューには、大量のデータをアプリに取り込み、その特定のワークフローを終了する操作が含まれます。
データがダウンロードされると、ユーザーは新しいワークフローを開始できるようになります。ワークフローが完了したら、ナビゲーション スタックを遡っても意味がないので、古い NavigationView については「忘れて」しまいたいと思います。代わりに、新しいナビゲーション ビューのルートとなる「起動」ビューに移動したいと思います。
SwiftUI NavigationViewsを使用して、ナビゲーションスタック内の1つのビューを使用して、別のNavigationViewを持つ(したがって、新しいナビゲーションスタックのルートになる)別のビューに移動するにはどうすればよいですか?
swift - SwiftUIアプリのNavigationViewのonAppearとonDisappearは期待どおりに動作していますか?
SwiftUI (私がこれを書いたときは Xcode 11 beta 6) での onAppear と onDisappear の動作が、開発者がより便利だと思うものなのか、それとも単に機能よりも問題なのかを知りたいです。
現時点では、添付のサンプル コード (Xcode 11b6 でコンパイルおよび実行されます) に見られるように、カスケード ナビゲーションを使用すると、ユーザーが前後に移動するコンソール出力は、次の場合にのみ onAppear をトリガーします。順方向の新しいビュー ロード (より深く行くことを意味します)。
ナビゲーション: Root -> NestedView1 -> NestedView2 -> NestedView3 で、各ビュー ステージにデバッグ ヘルパーを追加すると、
デバッグコンソールが表示されます
onAppear root level 0
onAppear level 1
onAppear level 2
onAppear level 3
(onDisappear トリガーなし)
ルート <- NestedView1 <- NestedView2 <- NestedView3 に戻ります
デバッグコンソールが表示されます...何も表示されません
(onAppear または onDisappear トリガーなし)
さて、開発者はむしろ onAppear と onDisappear を持っているでしょうか:
1) 現在観察されている動作のように、ユーザーが前方に移動したときにのみ、1 回だけ実行する必要があるアクションを起動する目的でトリガーされます。
2)ビューが表示されるたびにトリガーされます。アクション名のように、後方、前方、および何度でも実行されます。
シンプルで残忍なオプション 2 (および現在必要なもの) を使用しますが、私は NavigationView の初心者であり、オプション 2 は、私が考慮していない多くの確立されたパラダイムを壊す可能性があります。
あなたのフィードバックは、対応する SwiftUI のフィードバック アシスタント ケースが正当な理由に基づいているかどうかを確認するのに役立ちます。