gpt4 book ai didi

ios - 将可选图像 UIImageView 传递给另一个 View Controller

转载 作者:行者123 更新时间:2023-11-29 05:09:39 26 4
gpt4 key购买 nike

我很抱歉,因为我已经在另一个帖子中问过同样的问题。

感谢 http 调用,我能够从 wikimedia API 获取图像的 url 链接。到目前为止,我无法在另一个 View Controller 中传递并显示它。我使用依赖项“SDWebImage”来显示 url 链接。

这是http请求的代码

        let parameters : [String:String] = [
"format" : "json",
"action" : "query",
"prop" : "extracts|pageimages",
"exintro" : "",
"explaintext" : "",
"titles" : termDefinition,
"indexpageids" : "",
"redirects" : "1",
"pithumbsize" : "500"
]

//
request(wikipediaURl, method: .get, parameters: parameters).responseJSON { (response) in
if response.result.isSuccess {
//1. on affiche le tableau json initial
let definitionJSON: JSON = JSON(response.result.value)
print(definitionJSON)

// 3 valeurs : pageID,definition et source de l'image
let pageId = definitionJSON["query"]["pageids"][0].stringValue
let pageDefinition = definitionJSON["query"]["pages"][pageId]["extract"].stringValue

let imageSource = definitionJSON["query"]["pages"][pageId]["thumbnail"]["source"].stringValue
//on attache ces valeurs extraites aux bonnes variables
self.illustration.sd_setImage(with: URL(string: imageSource))
self.termDefinitionInfo = pageDefinition
print(imageSource)



// cas ou on n'a pas de definition
if pageDefinition == "" {
self.termDefinitionInfo = "Désolé,ce que vous cherchez ne se trouve pas sur Wikipedia"
}

// et on effectue le segue vers le second view controller ici
self.performSegue(withIdentifier: "toDefinition", sender: self)
print(self.termDefinitionInfo)

} else {
print("Error! Could not fetch data!")
}
}
}

图像位于变量“imageSource”中。在目标 View Controller 中,有一个 UIImageView 我希望在其中显示它。这是目标 View Controller 中的代码

import SwiftyJSON
import Alamofire
import SDWebImage

class DefinitionViewController: UIViewController {

@IBOutlet weak var definitionIllustrationImageView: UIImageView!
@IBOutlet weak var definitionTextView: UITextView!


// on cree deux variables pour attacher l'image illustrative et la definition

var definition: String?
var imageIllustrative: UIImageView?



override func viewDidLoad() {
super.viewDidLoad()

definitionTextView.text = definition

// Do any additional setup after loading the view.
}


}

最佳答案

您需要重写prepareForSegue并获取目标 View Controller ,从那里您可以设置所需的 View Controller 属性

如果你想传递图像,可以这样做:

 override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "toDefinition",
let destinationViewController = segue.destination as? DefinitionViewController {
destinationViewController.imageFromWeb = imageFromWeb
}
}

关于ios - 将可选图像 UIImageView 传递给另一个 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59804360/

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