Как вы вызываете глобальную функцию в классе координатора?
Я пытаюсь позвонить func fetchWeather()
в class Coordinator
но я получаю сообщение "Использование неразрешенного идентификатора fetchWeather
"ошибка. Вот код:
public func fetchWeather(cityName: String) {
let urlString = "\(ViewModel().weatherURL)&query=\(cityName)"
ViewModel().getWeatherData(with: urlString)
}
struct SearchBar: UIViewRepresentable {
@Binding var text: String
class Coordinator: NSObject, UISearchBarDelegate {
@Binding var text: String
init(text: Binding<String>) {
_text = text
}
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
text = searchText
}
func searchBarTextDidEndEditing(_ searchBar: UISearchBar) {
fetchWeather(cityName: text) // !!
}
}
func makeCoordinator() -> SearchBar.Coordinator {
return Coordinator(text: $text)
}
func makeUIView(context: UIViewRepresentableContext<SearchBar>) -> UISearchBar {
let searchBar = UISearchBar(frame: .zero)
searchBar.delegate = context.coordinator
searchBar.searchBarStyle = .minimal
return searchBar
}
func updateUIView(_ uiView: UISearchBar, context: UIViewRepresentableContext<SearchBar>) {
uiView.text = text
}
}