我的一半窗口是UITableView
,另一半是PageViewController
。
在我的PageViewController中,我有两个属性:
@IBOutlet weak var displayImageView: UIImageView!
var displayImage : UIImage?
PageViewController viewDidLoad
我指定:
override func viewDidLoad() {
super.viewDidLoad()
self.displayImageView.image = self.displayImage
}
displayImageView
是与outlet
中我的场景相关联的Storyboard
。当User
点击不同的单元格时,我希望displayImageView
中的图像发生变化。
在显示parentViewController
和tableView
的{{1}}中,我在PageViewController
didSelectRowAtIndexPath
这里是func getDisplayImageForSelectedRow() {
var row = self.tableView.indexPathForSelectedRow()?.row
//DisplayImageVC is a contentViewController that is loaded by pageViewController
var displayImageVC = self._pageContent[1] as DisplayImageVC
displayImageVC.displayImage = self._displayImage[row!] as UIImage
println(displayImageVC.displayImage)
if (self.isPageViewVisible){
displayImageVC.displayImageView.reloadInputViews()
displayImageVC.displayImageView.setNeedsDisplay()
}
}
的日志:
println()
根据日志,我假设正在分配一个新图像;但是,You selected cell #0
Optional(<UIImage: 0x7c21c2e0>)
You selected cell #1
Optional(<UIImage: 0x7c21c5a0>)
You selected cell #2
Optional(<UIImage: 0x7c21cd00>)
You selected cell #3
Optional(<UIImage: 0x7c21cff0>)
You selected cell #4
Optional(<UIImage: 0x7c21d2d0>)
出口继续显示第一次加载pageViewController时加载的相同图像。
正如您在代码中可能已经注意到的那样,我已经尝试了以下代码来使UIImageView刷新,但无济于事:
UIImageView
如何让displayImageVC.displayImageView.reloadInputViews()
displayImageVC.displayImageView.setNeedsDisplay()
显示已加载的新图像?
答案 0 :(得分:1)
在getDisplayImageForSelectedRow
中你只是更新UIImage,你还应该将图像分配给视图。:
func getDisplayImageForSelectedRow() {
..
displayImageVC.displayImage = self._displayImage[row!] as UIImage
displayImageVC.displayImageView.image = displayImageVC.displayImage <--THIS
..
}