我正在尝试将图像数据从一个视图控制器发送到另一个视图控制器。数据在单独的swift文件中进行硬编码。我在xcode中有一个数据文件,其中包含以下内容:
class Data {
struct Entry {
let filename: String
let heading: String
let headerSub: String
init(profilePicture: String, profileTitle: String, profileSub: String) {
self.heading = profileTitle
self.filename = profilePicture
self.headerSub = profileSub
}
}
let headerData = [
Entry(profilePicture: "image1.png", profileTitle: "person1", profileSub: ""),
Entry(profilePicture: "image2.png", profileTitle: "person2", profileSub: ""),
]
}
而且,在我的ViewController中,我有以下内容:
let categorySegueIdentifier = "CategoryDetailSegue"
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == categorySegueIdentifier {
if let destination = segue.destinationViewController as? RequestViewController {
if let categoryIndex = tableView.indexPathForSelectedRow?.row {
destination.categoryImage.image = data[0]
}
}
}
}
在ViewController的开头,我添加了以下内容 -
let data = Data()
在我的目标视图控制器中,我有以下内容 -
var categoryImage = UIImage()
override func viewWillAppear(animated: Bool) {
headerImage.image = categoryImage
}
为什么我收到以下错误: UIImage没有名为image的成员
知道问题是什么吗?
答案 0 :(得分:0)
我想你想这样做:
destination.categoryImage = data[0]
不是这个:
destination.categoryImage.image = data[0]
假设data[0]
是UIImage
。如果它是文件名,您当然希望这样做:
if let image = UIImage( named:data[0] ) {
destination.categoryImage = image
}