ios - iOS-将数据添加到数组后执行Segue(Swift)
问题描述
我正在尝试执行将图像数组传递给新视图控制器的转场,但是在将图像添加到数组之前执行转场 - 我相信这是因为 URLSession,我用它来转换 url一个图像,需要时间。
将图像添加到数组后,我将如何让 Segue 执行?
我将网址转换为图像的代码:
// When selection is selected
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let overallArray = displayArray[indexPath.section]
// Add Image 1 to imageArrayToBeSent
if let imageUrl = overallArray.fullImage1 {
let url = URL(string: imageUrl)
URLSession.shared.dataTask(with: url!) { (data, response, error) in
if error != nil {
print(error!)
return
}
DispatchQueue.main.async {
self.imageArrayToBeSent.append(UIImage(data: data!)!)
}
}.resume()
}
// stringToBeSent = overallArray.fullImage1!
performSegue(withIdentifier: "openNewViewController", sender: self)
}
我称之为 Segue 的代码:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let info = segue.destination as! NewViewController
info.imageArray = self.imageArrayToBeSent
print(self.imageArrayToBeSent)
}
解决方案
在回调中执行
DispatchQueue.main.async {
self.imageArrayToBeSent.append(UIImage(data: data!)!)
self.performSegue(withIdentifier: "openNewViewController", sender: self)
}
推荐阅读
- c# - 尝试插入具有 1:N 关系的实体时,重复键值违反了 EntityFramework 中的唯一约束“PK_Users”错误
- python - 在语料库中查找包含两个“g”(不一定相邻)的单词
- javascript - 使用在 showFileUpload 之后发送表单的自定义函数进行反应和上传
- android - Android Studio Preview 看起来很模糊
- julia - 如何在 Flux.jl 中进行主动学习?
- typescript - 指定对象中键的类型
- bash - 在不同的 bash 脚本中共享变量
- javascript - 为什么不在一个页面上滑动多个拇指画廊
- python - 将变量传递给模板年份的上下文处理器
- audio - Manjaro Linux KDE - 没有声音