So I'm trying to move an image from the first page to the second page. But my prepare() method is not working and I do not know why.. I tried to put override before the prepare function but it says the function is not overriding anything so I could not.
import UIKit
class BeginningPage: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
@IBOutlet weak var ImageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
// Dismiss the picker if the user canceled.
dismiss(animated: true, completion: nil)
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
// The info dictionary may contain multiple representations of the image. You want to use the original.
guard let selectedImage = info[UIImagePickerControllerOriginalImage] as? UIImage else {
fatalError("Expected a dictionary containing an image, but was provided the following: \(info)")
}
// Set photoImageView to display the selected image.
ImageView.image = selectedImage
// Dismiss the picker.
dismiss(animated: true, completion: nil)
}
//MARK: Action
@IBAction func PressImage(_ sender: UITapGestureRecognizer) {
let imagePickerController = UIImagePickerController()
imagePickerController.sourceType = .photoLibrary
imagePickerController.delegate = self
present(imagePickerController, animated: true, completion: nil)
}
func prepare(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "mySegue" {
if let destination = segue.destination as? ViewController {
destination.text = "123"
destination.image = ImageView.image
destination.LayerImage.image = ImageView.image
}
}
}
}
Your naming is wrong. Check the right version in docs. Method definition should look like this:
Swift 3:
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
Swift 2:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)