정의
swiftUI view를 관리하는 뷰컨틀롤러이다.
구현
swiftUI의 TextFiled의 text를 변경하여 UIViewController의 색을 바꾸는 미션을 해보자.
단계는 다음과 같다.
- SwiftUIView 구현
- viewController에 UIHostingController와 함께 등록
1. swiftUI TextField 구현
struct CustomSwiftUITextView : View {
@Binding var text: String
var body: some View {
TextField("SwiftUI TextField", text: $text)
.padding()
.background(Color.blue)
}
}
2. 등록
class ViewController: UIViewController {
private var text: String = "" {
didSet {
self.view.backgroundColor = UIColor.random()
}
}
...
override func viewDidLoad() {
super.viewDidLoad()
let swiftUITextField = CustomSwiftUITextView(text: Binding(get: { self.text }, set: { newValue in
self.text = newValue
})
)
let hostingController = UIHostingController(rootView: swiftUITextField)
addChild(hostingController) // 부모에서 자식 등록 ,viewController의 children에 등록
view.addSubview(hostingController.view) // subview 등록
hostingController.view.translatesAutoresizingMaskIntoConstraints = false
hostingController.didMove(toParent: self) // 자식에서 부모를 등록
}
}
결과
출처
'iOS > UIKit' 카테고리의 다른 글
iOS Cache (7) | 2024.10.17 |
---|---|
키보드 반응하기 (1) | 2024.10.13 |
UIEditMenuInteraction (3) | 2024.10.12 |
UISearchController (1) | 2024.10.06 |
NSKeyedArchiver (0) | 2024.09.11 |