怎么了
所以这是我的代码,用于从照片库中选择图像,现在我想将用户发送到下一个视图控制器,但仅在用户选择图像之后。我的问题是:
我如何将其转到下一个视图控制器,但仅在从照片库中选择了图像之后?
通过两种方式之一完成,以便仅在用户选择图像后才显示完成按钮 或者如果他们尝试单击“完成”直到从库中选择图像,则仅显示错误
谢谢!!!!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let imageTap = UITapGestureRecognizer(target: self, action: #selector(openImagePicker))
ProfilePictureImageView.isUserInteractionEnabled = true
ProfilePictureImageView.addGestureRecognizer(imageTap)
ProfilePictureImageView.layer.cornerRadius = ProfilePictureImageView.bounds.height / 2
ProfilePictureImageView.clipsToBounds = true
TapToChangeButton.addTarget(self, action: #selector(openImagePicker), for: .touchUpInside)
//when user clicks they can choose a photo from library
//instantiate image picker
ImagePicker = UIImagePickerController()
ImagePicker.allowsEditing = true
ImagePicker.sourceType = .photoLibrary
ImagePicker.delegate = self
setUpElements()
}
func setUpElements() {
ErrorLabel.alpha = 0
}
// taping to change and add a photo
@objc func openImagePicker(_ sender:Any) {
// Open Image Picker
self.present(ImagePicker, animated: true, completion: nil)
}
@IBAction func FinishTapped(_ sender: Any) {
}
}
//extend the proper delagate method
extension BackroundCheckViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate {
//cancel
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
picker.dismiss(animated: true, completion: nil)
}
//pick an image
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
//get the image the selected
if let pickedImage = info[UIImagePickerController.InfoKey.editedImage] as? UIImage {
self.ProfilePictureImageView.image = pickedImage
//upload to firbase
PhotoService.savePhoto(image: pickedImage)
}
picker.dismiss(animated: true, completion: nil)
}
}
答案 0 :(得分:0)
在didFinishPickingMediaWithInfo
的{{1}}方法中,在选择器解除的完成块中添加导航到另一个视图控制器的代码。
UIImagePickerControllerDelegate