为什么我在 swift 中 select 照片库不显示?
Why is photo library not displaying when I select it in swift?
使用 问题,我要求用户决定他们是要使用相机还是从 phone:
中选择图像
//Show alert to select the media source type.
private func showAlert() {
let alert = UIAlertController(title: "Image Selection", message: "From where you want to pick this image?", preferredStyle: .actionSheet)
alert.addAction(UIAlertAction(title: "Camera", style: .default, handler: {(action: UIAlertAction) in
self.imagePicker.sourceType = .camera
}))
alert.addAction(UIAlertAction(title: "Photo Album", style: .default, handler: {(action: UIAlertAction) in
self.imagePicker.sourceType = .photoLibrary
}))
alert.addAction(UIAlertAction(title: "Cancel", style: .destructive, handler: nil))
self.present(alert, animated: true, completion: nil)
}
我在 viewDidLoad
中这样调用:
override func viewDidLoad() {
super.viewDidLoad()
firstTextField.delegate = self
showAlert()
present(imagePicker, animated: true, completion: nil)
imagePicker.delegate = self
firstImageView.layer.cornerRadius = 8
}
然而,当我对此进行测试时,弹出警报,我选择了照片库,但该照片库没有出现。我试过使用 viewDidAppear
但也没有用。没有错误出现,它只是隐藏警报并显示当前视图控制器。
您可能会想象当出现警报时代码会停止。但事实并非如此!而且您不能同时显示两个呈现的视图控制器。但这就是你想要做的。
您说的是 showAlert()
,所以现在您的警报已启动,然后您立即说 present(imagePicker)
,您不能这样做,因为您的警报仍在启动。
使用 showAlert
警报的操作处理程序来显示图像选择器。这样,警报就会关闭,图像选择器就会打开。
使用
//Show alert to select the media source type.
private func showAlert() {
let alert = UIAlertController(title: "Image Selection", message: "From where you want to pick this image?", preferredStyle: .actionSheet)
alert.addAction(UIAlertAction(title: "Camera", style: .default, handler: {(action: UIAlertAction) in
self.imagePicker.sourceType = .camera
}))
alert.addAction(UIAlertAction(title: "Photo Album", style: .default, handler: {(action: UIAlertAction) in
self.imagePicker.sourceType = .photoLibrary
}))
alert.addAction(UIAlertAction(title: "Cancel", style: .destructive, handler: nil))
self.present(alert, animated: true, completion: nil)
}
我在 viewDidLoad
中这样调用:
override func viewDidLoad() {
super.viewDidLoad()
firstTextField.delegate = self
showAlert()
present(imagePicker, animated: true, completion: nil)
imagePicker.delegate = self
firstImageView.layer.cornerRadius = 8
}
然而,当我对此进行测试时,弹出警报,我选择了照片库,但该照片库没有出现。我试过使用 viewDidAppear
但也没有用。没有错误出现,它只是隐藏警报并显示当前视图控制器。
您可能会想象当出现警报时代码会停止。但事实并非如此!而且您不能同时显示两个呈现的视图控制器。但这就是你想要做的。
您说的是 showAlert()
,所以现在您的警报已启动,然后您立即说 present(imagePicker)
,您不能这样做,因为您的警报仍在启动。
使用 showAlert
警报的操作处理程序来显示图像选择器。这样,警报就会关闭,图像选择器就会打开。