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

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

ios - SwiftUI ベースのアプリを横向きモードで起動すると、ナビゲーション バーの背景色が設定されない

画面からの遷移に依存するSwiftUIベースのアプリを使用しています。NavigationView

ナビゲーション バーの背景色を設定する必要があり、ほとんどの場合これを機能させるコードを見つけました。

アプリを縦向きモードで起動すると、すべての回転が正常に機能します。

ただし、アプリを横向きモードで起動すると、バーはデフォルトの灰色になり、最初の回転後にのみ更新されます。

以下に、問題を再現するための最小限のコードを示します。

縦向きモードで起動したときのアプリの表示:

ここに画像の説明を入力

...横向きに回転...

ここに画像の説明を入力

最後に、ランドスケープモードで起動したときの外観です。

ここに画像の説明を入力

もログアウトしNavigationConfiguratorましたが、ポートレート モードで起動すると、2 つの呼び出しが行われることがわかりました。1 つ目はナビゲーション コントローラーの検索に失敗しますが、2 つ目は見つかります。

ランドスケープ モードで起動すると、呼び出しが 1 回だけ行われ、それが見つかりません。回転すると、それが検出され、色が正常に更新されます。

管理を介して再描画を強制しようとしまし@Stateたが、失敗しました。

アプリをポートレート モードにロックする以外に、アイデアが尽きてしまいました。

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

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 に渡されます。しかし、@EnvironmentObjectPageFourView の makeUIViewController メソッドからアクセスしようとすると、エラーが発生します。

致命的なエラー: データ型の ObservableObject が見つかりません。このビューの先祖として、データの View.environmentObject(_:) が見つからない可能性があります

... context.environment から @Environment オブジェクトを確認できますが。これが私のコードです:

PageFourView が呼び出される親ビューは次のとおりです。