Я пытаюсь разработать свое первое приложение для IOS в SwiftUI, и я хочу развернуть список, чтобы обновить список. Я уже знаю, что на данный момент Apple не реализовала это, но я нашла следующее решение здесь для stackoverflow ( Потяните вниз, чтобы обновить данные в SwiftUI ), и я реализовала решение из первого ответа. И это прекрасно работает.
Но теперь я хочу иметь SwiftUI View в этом обновляемом представлении. В решении сказано, что я должен:
обернуть их в UIHostingController и поместить их в makeUIView
И вот моя проблема. Что я должен был сделать именно? Я попробовал следующее, но это не работает.
func makeUIView(context: Context) -> UIScrollView {
let control = UIScrollView()
control.refreshControl = UIRefreshControl()
control.refreshControl?.addTarget(context.coordinator, action:
#selector(Coordinator.handleRefreshControl),
for: .valueChanged)
// Simply to give some content to see in the app
/*let label = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 30))
label.text = "Scroll View Content"
control.addSubview(label)*/
let parent = UIViewController()
let child = UIHostingController(rootView: RecipeList())
child.view.translatesAutoresizingMaskIntoConstraints = false
child.view.frame = parent.view.bounds
// First, add the view of the child to the view of the parent
parent.view.addSubview(child.view)
// Then, add the child to the parent
parent.addChild(child)
return control
}
Кто-нибудь знает, что я делаю неправильно, и может сказать мне, что я должен изменить?
Спасибо и наилучшими пожеланиями
Хенрик