为什么我在 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 警报的操作处理程序来显示图像选择器。这样,警报就会关闭,图像选择器就会打开。