我有一个带有TableView的页面。当我们点击一个单元格时,它会加载一个新页面。新页面应该打印一个图像,该图像取决于我们点击的单元格。
以下是我在点击单元格时加载新页面的功能:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath){
let vc = ProblemPresentation()
vc.modalPresentationStyle = .fullScreen
vc.selectedImage = "problem(indexPath.row)"
self.present(vc, animated: true, completion: nil)
return
}
问题是我在新页面上看不到图像。我想这是因为当我做vc.selectedImage = "..."
时,vc页面已经加载,因此我在新页面上看不到图像。有没有办法让我的功能正常工作?也许在vc.selectedImage
之后我可以做一些类似vc.refresh
的事情,这样它就可以工作了。
这是我加载新页面的代码:
import UIKit
class ProblemPresentation: UIViewController, UITextFieldDelegate {
@IBOutlet weak var problemImage: UIImageView!
var selectedImage: String?
let sampleTextField = UITextField(frame: CGRect(x: 100, y: 545, width: 230, height: 40))
let solution = ["600", "1", "0.5"]
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = .white
if let notNil = problemImage {
notNil.image = UIImage(named: selectedImage ?? "Ncorrect")
notNil.layer.masksToBounds = true
notNil.layer.borderWidth = 1.5
notNil.layer.borderColor = UIColor.black.cgColor
}
您可以使用didSet
刷新:
var selectedImage: String? {
didSet {
problemImage.image = UIImage(named: selectedImage ?? "Ncorrect")
}
}