Reputation: 11
I'm making a photo view with back and forward button. The code I made shows a picture but the buttons don't work. What am I missing?
import UIKit
class ViewController: UIViewController {
var presentImg: UIImage?
var numImage = 1
var imgOn:UIImage?
@IBOutlet var imgView: UIImageView!
@IBAction func btnBack(_ sender: UIButton) {
numImage -= 1
}
@IBAction func btnForward(_ sender: UIButton) {
numImage += 1
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let imageName = String(numImage) + ".jpeg"
imgOn = UIImage(named: imageName)
imgView.image = imgOn
}
}
Upvotes: 1
Views: 35
Reputation: 130102
Simply put, you are only updating an internal variable, you are not updating the image itself:
class ViewController: UIViewController {
var presentImg: UIImage?
var numImage = 1
var imgOn:UIImage?
@IBOutlet var imgView: UIImageView!
@IBAction func btnBack(_ sender: UIButton) {
numImage -= 1
updateImage()
}
@IBAction func btnForward(_ sender: UIButton) {
numImage += 1
updateImage()
}
override func viewDidLoad() {
super.viewDidLoad()
updateImage()
}
private func updateImage() {
let imageName = "\(numImage).jpeg"
imgOn = UIImage(named: imageName)
imgView.image = imgOn
}
}
Upvotes: 1