問題タブ [uiviewcontrollerrepresentable]
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 ベースのアプリを横向きモードで起動すると、ナビゲーション バーの背景色が設定されない
画面からの遷移に依存するSwiftUIベースのアプリを使用しています。NavigationView
ナビゲーション バーの背景色を設定する必要があり、ほとんどの場合これを機能させるコードを見つけました。
アプリを縦向きモードで起動すると、すべての回転が正常に機能します。
ただし、アプリを横向きモードで起動すると、バーはデフォルトの灰色になり、最初の回転後にのみ更新されます。
以下に、問題を再現するための最小限のコードを示します。
縦向きモードで起動したときのアプリの表示:
...横向きに回転...
最後に、ランドスケープモードで起動したときの外観です。
もログアウトしNavigationConfigurator
ましたが、ポートレート モードで起動すると、2 つの呼び出しが行われることがわかりました。1 つ目はナビゲーション コントローラーの検索に失敗しますが、2 つ目は見つかります。
ランドスケープ モードで起動すると、呼び出しが 1 回だけ行われ、それが見つかりません。回転すると、それが検出され、色が正常に更新されます。
管理を介して再描画を強制しようとしまし@State
たが、失敗しました。
アプリをポートレート モードにロックする以外に、アイデアが尽きてしまいました。
swiftui - UIViewControllerRepresentable オブジェクトから @Environment オブジェクトにアクセスする
このアプローチを使用して、カメラをswiftUIに組み込みました: https://medium.com/@gaspard.rosay/create-a-camera-app-with-swiftui-60876fcb9118
UIViewControllerRepresentable は PageFourView クラスによって実装されます。PageFourView は、親 View の TabView の 1 つです。SceneDelegate から親ビューに@EnvironmentObject
渡され、次に PageFourView に渡されます。しかし、@EnvironmentObject
PageFourView の makeUIViewController メソッドからアクセスしようとすると、エラーが発生します。
致命的なエラー: データ型の ObservableObject が見つかりません。このビューの先祖として、データの View.environmentObject(_:) が見つからない可能性があります
... context.environment から @Environment オブジェクトを確認できますが。これが私のコードです:
PageFourView が呼び出される親ビューは次のとおりです。