gpt4 book ai didi

ios - UIImagePickerController 使用照片/重拍按钮不起作用

转载 作者:行者123 更新时间:2023-11-28 09:42:13 28 4
gpt4 key购买 nike

我使用默认的 UIImagePickerController 来拍照/从图库中选择照片。在某些时候,我会在 UIImagePickerController 上显示其他 ViewController 以自定义所选照片。如果用户选择取消选项,我想让他回到图像选择屏幕 - 在相机源的情况下使用照片/重拍按钮进行屏幕。使用自定义按钮关闭 ViewController 后不起作用(它们之前起作用)。

我不想在这里使用 AVFoundation。

相关代码如下:

let storyBuilder = StoryBuilderViewController.storyboardController()

storyBuilder.delegate = self

photoPickerController.present(storyBuilder, animated: true)

我将通过这种方式展示我的自定义屏幕。

func resetButtonTapped(_ storyBuilder: StoryBuilderViewController) {
storyBuilder.dismiss(animated: true)
}

此代码在关闭后运行。

所以,没什么特别的,但是按钮停止工作了

View 层次结构如下所示:

View Hierarchy

因此,此屏幕上没有任何内容。按钮属性 isEnabled 设置为 true。 UIImagePickerController 不是零。 isUserInteractionEnabled 为真

我创建了一个 simple project有这个错误。它也不起作用。另外,我刚刚遇到过一个案例,当相机完全停止工作时,即使在应用程序重新启动后,日志中也充满了错误。只有重启我的手机才有帮助。

更多描述

我有一个开始屏幕 - RootViewController。我需要在 UIImagePickerController 上显示一个摄像头。在用户拍完照片后,我需要展示另一个 Controller - EditViewController(不会关闭 UIImagePickerController,所以如果用户想拍另一张照片 - 他就回去)。我这样做:

picker(editController, animated: true) //picker - UIImagePickerController, editController - edit controller

正如我之前所说,我的用户可以返回 - 这里有一个问题 - 如果我关闭 editController,UIImagePickerController 上的按钮将不起作用。

请问一些问题,我不明白,为什么很难正确得到我的问题。

最佳答案

我已经检查了您的演示代码并进行了某些更改以使其按您的要求工作。1) 请检查 ViewController 类代码。

class ViewController: UIViewController {
fileprivate var photoPickerController = UIImagePickerController()
let notificationIdentifier: String = "StartCamera"

override func viewDidLoad() {
// Register to receive notification
NotificationCenter.default.addObserver(self, selector: #selector(ViewController.cameraSetUp), name: NSNotification.Name(rawValue: notificationIdentifier), object: nil)
}

func cameraSetUp(){
photoPickerController.sourceType = .camera
photoPickerController.cameraDevice = .front
photoPickerController.delegate = self
present(photoPickerController, animated: true)

}
@IBAction func showCamera(_ sender: Any) {
cameraSetUp()
}
}

extension ViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate {
public func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
guard let storyboard = storyboard else {return}
let viewController = storyboard.instantiateViewController(withIdentifier: "EditingViewController")
picker.dismiss(animated: true)
present(viewController, animated: true)
}

public func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
picker.dismiss(animated: true)
}
}

2)EditingViewController类代码

class EditingViewController: UIViewController {
let notificationIdentifier: String = "StartCamera"

@IBAction func dismissButtonTapped(_ sender: Any) {
// Post a notification
dismiss(animated: true)
NotificationCenter.default.post(name: NSNotification.Name(rawValue: notificationIdentifier), object: nil)
}
}

关于ios - UIImagePickerController 使用照片/重拍按钮不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44264536/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com