在 Swift 中按“使用照片”后如何进入下一个屏幕?

Posted

技术标签:

【中文标题】在 Swift 中按“使用照片”后如何进入下一个屏幕?【英文标题】:How do I go to the next screen after pressing "Use Photo" in Swift? 【发布时间】:2020-09-29 05:38:12 【问题描述】:

我目前正在用 Swift 为 iPhone 创建一个简单的应用程序。当我按下“拍照”按钮时,相机会打开,所以我可以拍照。然后,当我按下“使用照片”时,它会停留在带有“拍照”按钮的第一个屏幕上。按“使用照片”后如何让应用显示下一个屏幕/故事板?

【问题讨论】:

你需要关闭图像选择器 【参考方案1】:

在您的主屏幕上有两个按钮...

1. Take Photo
2. Use Photo

所以当你点击拍照时,它会打开相机,你就可以拍照了。

现在,当您在主屏幕上时,当您按Use Photo 按钮时,它不会正确转到图像库。

因此,从这个场景开始,我将为您提供使用照片的解决方案。

解决方案:请通过这个,这里我在按钮点击时使用图像选择器。它将允许您选择/选择图像并将您选择的图像分配给UIImageView

import UIKit

class ViewController: UIViewController, UINavigationControllerDelegate, UIImagePickerControllerDelegate 

    @IBOutlet weak var imageView: UIImageView!


    @IBAction func btnUsePhoto(_ sender: Any) 
        let imagePicker = UIImagePickerController()
        if UIImagePickerController .isSourceTypeAvailable(UIImagePickerController.SourceType.photoLibrary)
        
            imagePicker.sourceType = UIImagePickerController.SourceType.photoLibrary
            imagePicker.allowsEditing = true
            imagePicker.delegate = self
            self .present(imagePicker, animated: true , completion: nil)
        
    


    override func viewDidLoad() 
        super.viewDidLoad()
    

    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) 
        if let pickerImage = info[UIImagePickerController.InfoKey.originalImage] as? UIImage 
            self.imageView.contentMode = .scaleAspectFit
            self.imageView.image = pickerImage
            dismiss(animated: true)
        

    



希望能解决你的问题。

【讨论】:

【参考方案2】:

可能你的答案就在这里:

ImagePickerManager

这是一种用于拍摄图像的复制粘贴解决方案。我只是做了一些小改动。

拍摄风景时不要忘记设置图片的正确方向:

Normalize Pictures taken by camera

【讨论】:

以上是关于在 Swift 中按“使用照片”后如何进入下一个屏幕?的主要内容,如果未能解决你的问题,请参考以下文章

Swift:在警报视图中按下按钮后,tableView 不会重新加载数据

当用户在swift中按下注销按钮时如何停止更新位置

在swift5中按下特定按钮时如何使用代码呈现tabBarViewController(在情节提要中创建)?

如何在swift中按下按钮从另一个xib文件加载另一个xib文件

在 Swift 中按下返回键时在文本字段之间切换

如何在 Swift 中使用 AVPlayerViewController 检测全屏模式?