Sobes.tech
Junior — Middle

Дар кадом сенарияҳо истифодаи UIHostingController дар барнома оқилона аст?

sobes.tech AI

Ҷавоб аз AI

UIHostingController-ро истифода мебарад барои ҳамгироии SwiftUI дар барномаҳои UIKit. Ин махсусан вақте ки:

  • Шумо мехоҳед, ки намуди SwiftUI-ро дар контроллери UIKit мавҷудбуда дохил кунед.
  • Баъд-ба-баъд барномаи худро аз UIKit ба SwiftUI гузаронед.
  • Манфиатҳои SwiftUI-ро (масалан, UI декларативӣ) бе навиштани пурраи барнома истифода баред.

Маслиҳат барои истифода:

import SwiftUI
import UIKit

struct MySwiftUIView: View {
    var body: some View {
        Text("Салом аз SwiftUI")
    }
}

class MyViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        let swiftUIView = MySwiftUIView()
        let hostingController = UIHostingController(rootView: swiftUIView)
        addChild(hostingController)
        hostingController.view.frame = view.bounds
        view.addSubview(hostingController.view)
        hostingController.didMove(toParent: self)
    }
}

Инчунин, UIHostingController ҳамчун мост байни UIKit ва SwiftUI хизмат мекунад.