【发布时间】:2016-04-27 04:53:15
【问题描述】:
数据模型
class DataImage {
var userId: String
var value: Double
var photo: UIImage?
var croppedPhoto: UIImage?
init(userId:String, value: Double, photo: UIImage?, croppedPhoto: UIImage?){
self.userId = userId
self.value = value
self.photo = photo
self.photo = croppedPhoto
}
}
ViewController(tableView)
var photos = [DKAsset]() //image source
var datas = [DataImage]()
override func viewDidLoad() {
super.viewDidLoad()
self.loadDataPhoto()
}
func loadDataPhoto(){
var counter = 0
for asset in photos{
asset.fetchOriginalImageWithCompleteBlock({ image, info in // move image from photos to datas
let images = image
let data1 = dataImage(userId: "img\(counter+1)", value: 1.0, photo: images, croppedPhoto: images)
self.datas += [data1]
counter++
})
}
}
从该代码中,假设我有 5 个数据:
- dataImage(userId: "img1", value: 1.0, photo: images,croppedPhoto: 图片)
- dataImage(userId: "img2", value: 1.0, photo: images,croppedPhoto: 图片)
- dataImage(userId: "img3", value: 1.0, photo: images, croppedPhoto: 图片)
- dataImage(userId: "img4", value: 1.0, photo: images,croppedPhoto: 图片)
- dataImage(userId: "img5", value: 1.0, photo: images,croppedPhoto: 图片)
并且我从视图控制器中选择“img3”并成功将其移动到cropviewController
CropViewController
var datasCrop: dataImage?
override func viewDidLoad() {
super.viewDidLoad()
if let datasCrop = datasCrop{
// beforeImage.image = datasCrop.photo
photoId.text = datasCrop.userId
self.cropView.imageToCrop = datasCrop.photo
}
}
@IBAction func handleCropButton(sender: UIButton)
{
if let croppedImage = cropView.croppedImage()
{
croppedImage //theCropped img3's cropped image
}
}
在 croppedViewController 中,我裁剪“img3”图像。
我的问题是,我希望在 datas["img3"] 中更新裁剪后的图像并将其移回 viewController。如何做到这一点?
【问题讨论】:
-
我懒得输入答案:D。但是您可以查看此链接stackoverflow.com/questions/5210535/…。它告诉你如何在视图控制器之间传递对象
-
你有什么快速的来源吗? @t4nhpt
-
请查看 Swift 链接:stackoverflow.com/questions/25589240/…
-
您可以尝试使您的数组全局化并从任何地方访问它,或者您可以使用
ViewController().yourArray访问它 -
@iamalizade 哦,所以我可以在“handleCropButton”中使用 ViewController().datas?我现在就去试试