У меня есть проект Master-Detail, где я анализирую данные из JSON.Цель состоит в том, чтобы добавить UIActivityIndicatorView (с помощью URLSession) в DetailsViewController во время ожидания получения данных и загрузки в DetailsViewController.Я попробовал несколько способов, запустив UIActivityIndicatorView в Master после следующего:
let task = URLSession.shared.dataTask(with: url!) { (data, response, error) in
Также я не знаю, где это остановить, я пробовал это в ViewDidLoad () DetailViewController (до configureView ()):
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
configureView()
}
Но тоже не сработало.Я нигде не смог найти информацию о добавлении индикатора активности, используя состояние URLSession.Здесь я добавляю код из MasterViewController, где я пытался запустить индикатор активности:
let arrayOfUrls = [ URL(string: "http://www.omdbapi.com/?t=The+Dark+Knight&apikey=f85dc75e"), URL(string: "http://www.omdbapi.com/?t=The+Lord+of+the+Rings%3A+The+Return+of+the+King&apikey=f85dc75e"), URL(string: "http://www.omdbapi.com/?t=Forrest+Gump&apikey=f85dc75e"), URL(string: "http://www.omdbapi.com/?t=Inception&apikey=f85dc75e"), URL(string: "http://www.omdbapi.com/?t=The+Matrix&apikey=f85dc75e"), URL(string: "http://www.omdbapi.com/?t=Interstellar&apikey=f85dc75e"), URL(string: "http://www.omdbapi.com/?t=The+Pianist&apikey=f85dc75e"), URL(string: "http://www.omdbapi.com/?t=The+Intouchables&apikey=f85dc75e"), URL(string: "http://www.omdbapi.com/?t=The+Departed&apikey=f85dc75e"), URL(string: "http://www.omdbapi.com/?t=The+Prestige&apikey=f85dc75e") ]
for url in arrayOfUrls {
let task = URLSession.shared.dataTask(with: url!) { (data, response, error) in
if let error = error {
print (error)
} else {
if let data = data {
do {
let movie = try JSONDecoder().decode(Movie.self, from: data)
print(movie.Title)
self.objects.append(movie.Title)
self.details.append(movie)
} catch {
print("Json Processing Failed")
}
}
}
}
task.resume()
}
}