gpt4 book ai didi

ios - Swift 2 TableView 将图像从网络传递到下一个 Controller

转载 作者:行者123 更新时间:2023-11-30 13:32:49 24 4
gpt4 key购买 nike

我的tableView显示来自网络的图像列表。我尝试将图像数据传递到下一个 Controller ,但失败了。这是我的步骤:

1) 声明一个空的 UIImage 变量 => 2) 从 url 设置单元格的图像 => 3) 当用户选择单元格时获取单元格的图像 => 将其传递给下一个 Controller

但是,它正在将空图像传递给下一个 Controller ..

var myImage: UIImage?

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! customCell

if let cellImage = URLArray[indexPath.row]["image"] {
do {
let imgURL: NSURL = NSURL(string: cellImage!)!
let request: NSURLRequest = NSURLRequest(URL: imgURL)

let session = NSURLSession.sharedSession()
let task = session.dataTaskWithRequest(request){
(data, response, error) -> Void in

if (error == nil && data != nil) {
func display_image() {
cell.placeImage.image = UIImage(data: data!)!
}
dispatch_async(dispatch_get_main_queue(), display_image)
} else {
cell.placeImage.image = UIImage(named: "image1")!
}
}
task.resume()
}
}
return cell
}

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

let selectedCell = tableView.cellForRowAtIndexPath(indexPath)! as! customCell
self.myImage = selectedCell.placeImage.image

performSegueWithIdentifier("showDetail", sender: self)
}

// prepareForSegue
if segue.identifier == "showDetail" {
let controller = (segue.destinationViewController as! secondViewController)
controller.Image = self.myImage

最佳答案

您需要在prepareForSegue中获取点击单元格的引用:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let identifier = segue.identifier{
if(identifier == "showDetail") {
if let sender = sender as? customCell{
if let secondViewController = segue.destinationViewController as? secondViewController {
secondViewController.Image = sender.placeImage
}
}
}
}
}

要使其正常工作,您需要在 Storyboard 中设置从 Cell 到第二个ViewController 的“showDetail”segue

关于ios - Swift 2 TableView 将图像从网络传递到下一个 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36386267/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com