У меня есть UITableViewController
, который встроен в UINavigationController
. Когда я нажимаю на строку, я пытаюсь загрузить файл. Чтобы показать прогресс этой загрузки, я решил использовать собственное всплывающее окно (другое UIViewController
) - если у кого-то есть идея показать прогресс загрузки в этом контексте, я открыт для него.
Единственная идея, которую я должен перенести непрерывные данные из одного UIViewController
в другой (если это возможно), заключается в использовании Singleton. Мой код ниже, моя проблема на данный момент в том, что я не знаю, как обновить представление прогресса, хотя теперь у него есть доступ к данным прогресса через синглтон.
class SharedSingleton{
private init(){}
static let shared = SharedSingleton()
var prog: Float = 0
}
UITableViewController:
Использование Alamofire для завершения загрузки:
/**TRACK PROGRESS OF UPLOAD**/
upload.uploadProgress { progress in
//print(progress.fractionCompleted)
let mySingleton = SharedSingleton.shared
mySingleton.prog = Float(progress.fractionCompleted)
print("mySingleton.prog: \(mySingleton.prog)")
UIViewController, содержащий всплывающее окно:
@IBOutlet weak var popUpContainer: UIView!
@IBOutlet weak var uploadStatus: UILabel!
@IBOutlet weak var progressBar: UIProgressView!
override func viewDidLoad() {
super.viewDidLoad()
// Make popup have rounded corners
popUpContainer.layer.cornerRadius = 5
popUpContainer.layer.masksToBounds = true
// Call Singleton and assign progress of upload to progress view
// HOW TO UPDATE ??????
let mySingleton = SharedSingleton.shared
progressBar.progress = mySingleton.prog
}