我的Table View
基本标签为Table View Cell
。我将单元格标记为“1月”,“2月”,“3月”等。当用户点击“1月”时,将使用以下Swift代码显示文件名为“jan.jpeg”的图像:
override func viewDidLoad() {
super.viewDidLoad()
let image = UIImage(named: "jan.jpeg")!
imageView = UIImageView(image: image)
imageView.frame = CGRect(origin: CGPointMake(0.0, 0.0), size:image.size)
}
我的问题是,当用户点击“二月”时,是否有可能显示“feb.jpeg”,而“如果用户点击”三月“将显示”mar.jpeg?如何实现?
答案 0 :(得分:1)
选择单元格后,将调用tableView:didSelectRowAtIndexPath:
委托方法。如果您有预定义的单元格列表,则可以测试正在点击的单元格并加载正确的图像。例如:
在viewcontroller中使用tableView的所有函数之外有一个变量var imgName: String
。
还将此函数放在带有tableView的视图控制器中:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
if indexPath.row == 0 {
imgName = "jan.jpeg"
}
else if indexPath.row == 1 {
imgName = "feb.jpeg"
}
else if indexPath.row == 2 {
imgName = "mar.jpeg"
}
else {
// Handle else
}
self.performSegueWithIdentifier("showImageSegue", sender: self)
}
您需要转到界面构建器并将viewcontrollers之间的segue命名为“showImageSegue”。
此外,实施prepareForSegue:
功能:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
let destinationVC = segue.destinationViewController as ImageViewController // Replace ImageViewController with whatever the name of your destination viewcontroller is.
destinationVC.imageName = imgName
}
最后,在ImageViewController
类中,添加:
var imageName: String
override func viewDidLoad() {
let image = UIImage(named: imageName)
imageView = UIImageView(image: image)
imageView.frame = CGRect(origin: CGPointMake(0,0, 0,0), size: image.size)
}