Возможно ли объединить в одном View SwiftUIView и UIViewControllerRepresentable? - PullRequest
1 голос
/ 02 марта 2020

Мне интересно, возможно ли объединить View и UIViewControllerRepresentable в одном представлении. Я попытался:

//Here I declare MyViewController:
class MyViewController: UIViewController {
    override viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = .red
    }
}

struct MyViewControllerIntegrate: UIViewControllerRepresentable {

    func makeUIViewController(context: UIViewControllerRepresentableContext<MyViewControllerIntegrate>) -> MyViewController {
        return MyViewController()
    }

    func updateUIViewController(_ uiViewController: MyViewController, context: UIViewControllerRepresentableContext<MyViewControllerIntegrate>) {
    }
}

struct MyView: View {
    var body: some View {
        Text("Hello StackOverflow!")
    }
}

struct ContentView: View {
    var body: some View {
        MyView()
        MyViewController()
        .frame(height: 400)
    }
}

Xcode показывает мне сообщение об ошибке:

Функция объявляет непрозрачный тип возврата, но не имеет в своем теле операторов возврата, из которых можно вывести базовый тип

Есть намеки? Спасибо

1 Ответ

1 голос
/ 02 марта 2020

Поместите их в группу (или в некоторый стек, например, VStack)

struct ContentView: View {
    var body: some View {
        Group {
           MyView()
           MyViewController()
              .frame(height: 400)
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...