SwiftUI/Controls & Tips
Custom Environment
까칠코더
2023. 12. 5. 15:06
반응형
@Environment 환경변수를 시스템에서 제공된 것 외에 사용자가 지정해서 사용해야 할 경우가 있습니다.
방법은 EnvironmentKey 프로토콜을 준수하도록 설정하면 됩니다.
참고 : https://developer.apple.com/documentation/swiftui/environmentvalues
// 사용할 키 정의
struct MyEnvironmentKey: EnvironmentKey {
static let defaultValue: String = "Default value"
}
// 해당 변수에 대한 getter, setter 정의
extension EnvironmentValues {
var myCustomValue: String {
get { self[MyEnvironmentKey.self] }
set { self[MyEnvironmentKey.self] = newValue }
}
}
// 사용할 뷰
struct ContentView: View {
@Environment(\.myCustomValue) var myCustomValue: String
var body: some View {
...
}
}
// 기본 사용방법
ContentView().environment(\.myCustomValue, "Test")
// 간편하게 사용하기 위해 View 확장
extension View {
func myCustomValue(_ myCustomValue: String) -> some View {
environment(\.myCustomValue, myCustomValue)
}
}
// 간편하게 사용
ContentView().myCustomValue("Test")
반응형