I am adding a SwiftUI view in UIKit via UIHostingController
. I want to do pass an environment object for custom key like this in my UIViewController
:
private var settingsEnvModeVal:Bool = false {
didSet {
NSLog("Env Variable changed")
}
}
func openSettings() {
let settingsUI = SettingsUI()
.environment(\.modalMode, $settingsEnvModeVal)
// Does not build, how to fix it?
let settingsController = UIHostingController(rootView: settingsUI)
settingsController.modalPresentationStyle = .formSheet
self.present(settingsController, animated: true)
}
// define env key to store our modal mode values
struct ModalModeKey: EnvironmentKey {
static let defaultValue = Binding<Bool>.constant(false)
}
extension EnvironmentValues {
var modalMode: Binding<Bool> {
get {
return self[ModalModeKey.self]
}
set {
self[ModalModeKey.self] = newValue
}
}
}
The code doesn’t build, how do I get something like this working?