Как установить и отключить SVProgressHUD при переходе на другой ViewController
Я хочу показать индикатор выполнения при нажатии кнопки, чтобы переместить другую ViewController
(Это ViewController
загружается с огромным количеством данных из WebService), и после загрузки все данные индикатор выполнения будет отклонен.
Я имею в виду сначала нажмите кнопку, а затем сразу перейти к другому ViewController
с индикатором выполнения и индикатором отклонения после загрузки всех данных.
здесь я добавляю код для перехода на другой ViewController
:
UIStoryboard *sb=[UIStoryboard storyboardWithName:@"Main" bundle:nil];
Guide *guideVC = [sb instantiateViewControllerWithIdentifier:@"Guide"];
[self.navigationController pushViewController:guideVC animated:YES];
А WebService просто загружается в viewDidLoad
метод на новый ViewController
,
Как я могу это сделать. Любой даст решение.
2 ответа
Здесь я только что показал вам, как закрыть SVProgress. Здесь я использовал свой собственный класс APIManager(используя Alamofire) для вызова API.
override func viewDidLoad() {
super.viewDidLoad()
self.fetchList()
}
func fetchList() {
SVProgressHUD.show()
APIManager.callAPIRequest(Method: .post, url: urlStr, parameters: parameters, headers: headers, completion:
{ (result, headerMessage) in
let dicJSONResponse = result.dictionaryValue
//SuccessBlock
SVProgressHUD.dismiss()
}) { (httpresponse, errorMessage) in
//Failure blog
SVProgressHUD.dismiss()
}
}
Пожалуйста, сделайте следующее:
- Я думаю, что вы используете basewebservice(родительский класс) для всех ваших задач webservice.
- Запустите индикатор выполнения перед вызовом веб-службы (вызов GET, POST, PUT и PATCH).
- Остановите индикатор выполнения после получения коллбэков успеха или неудачи.
- Если вам нужно обрабатывать очень большие данные, пожалуйста, запустите их в фоновом потоке для бесперебойной работы потока пользовательского интерфейса.