Когда я нажимаю secondButton до того, как статья не будет загружена, ArticleViewController пуст, потому что showArticleView (section) выполняется до завершения закрытия.
Как мне ожидать, что завершение завершится, чтобы выполнить showArticleView (section) метод.
Контроллер не должен быть представлен без данных.
@IBAction func secondButtonPressed() {
if let data = issue.data, let article = data.getTableOfContents.first {
downloadArticles(for: article)
}
}
private func downloadArticles(for section: IssueDataSection) {
if let mainPage = section.pages.first {
currentArticleDownload = issue.mediaManager.download(page: mainPage.intValue, loadingDelegate: self, completion: { medias in
if let medias = medias {
medias.articles(for: section) { _ in
self.showArticleView(section)
}
}
})
}
}
private func showArticleView(_ section: IssueDataSection?) {
if let controller = UIStoryboard(name: "IssueViewer", bundle: nil).instantiateViewController(withIdentifier: "ArticleViewController") as? ArticleViewController {
controller.issue = issue
if let section = section {
controller.section = section
}
controller.showMagHandler = {
self.firstButtonPressed()
}
controller.modalPresentationCapturesStatusBarAppearance = true
present(controller, animated: true, completion: nil)
}
}