gpt4 book ai didi

swift - 使用 ImagePickerController 拍摄视频/照片并在不同 View 上使用它们

转载 作者:行者123 更新时间:2023-11-30 10:16:29 32 4
gpt4 key购买 nike

有人可以指导我如何在另一个 View 中使用刚刚从图像选择器拍摄的照片或视频的正确方向吗?

假设我在按下相机按钮时从主视图中调用它。我想拍摄照片或视频然后使用它。我想在另一个 View 中执行此操作,我可以在其中使用不同的自定义按钮,以便将其分享到 Facebook、您有什么以及返回我的主视图。我该如何去做呢?

这是我到目前为止的代码。

//
// ViewController.swift
// Cop Watch
//
// Created by James Combs on 4/16/15.
// Copyright (c) 2015 James's Source Code. All rights reserved.
//

import Foundation
import UIKit

class MainViewController: UIViewController, CameraViewControllerDelegate, UITextViewDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

@IBOutlet internal var photosButton: UIBarButtonItem!
@IBOutlet internal var cameraButton: UIBarButtonItem!
@IBOutlet internal var goodBadInput: UITextField!
@IBOutlet internal var stoppedInput: UITextField!
@IBOutlet internal var ethnicityInput: UITextField!
@IBOutlet internal var nameInput: UITextField!

internal var imagePickerController: UIImagePickerController?
internal var camViewController: CameraViewController?
internal let camSourceError = "Camera is not available"

private var hasCancelledVideo: Bool = false
private var hasCancelledPhoto: Bool = false
private let cameraViewIdent = "CameraViewController"
private let photoViewIdent = "PhotoViewController"


// Tried doing things here but unsure how to use this correctly for now with image picker
func cameraViewControllerDidFinish(controller: CameraViewController, imagePicker: UIImagePickerController) {

/*imagePicker.delegate = self

if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera) {
imagePicker.sourceType = UIImagePickerControllerSourceType.Camera
}

imagePicker.allowsEditing = true
controller.presentViewController(imagePicker, animated: true, completion: nil)
controller.navigationController?.popViewControllerAnimated(true)*/
}

func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage!, editingInfo: [NSObject : AnyObject]!) {

self.dismissViewControllerAnimated(true, completion: nil)
}

func imagePickerControllerDidCancel(picker: UIImagePickerController) {

self.dismissViewControllerAnimated(true, completion: nil)
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

if segue.identifier == self.cameraViewIdent {

// Get a reference to the camera view controller - I THINK I COULD COMBINE THESE 2 IN ONE
if let destinationVC = segue.destinationViewController as? CameraViewController {

}
}
else if segue.identifier == self.photoViewIdent {

// Get a reference to the photo view controller
if let destinationVC = segue.destinationViewController as? PhotosViewController {


}
}
}

@IBAction func didPressPhotosButton(sender: AnyObject) {

}

@IBAction func didPressCameraButton(sender: AnyObject) {

self.imagePickerController = UIImagePickerController()
self.imagePickerController!.delegate = self

if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera) {
self.imagePickerController!.sourceType = UIImagePickerControllerSourceType.Camera
}

var availableMediaTypes = UIImagePickerController.availableMediaTypesForSourceType(self.imagePickerController!.sourceType)

self.imagePickerController!.mediaTypes = availableMediaTypes!
self.imagePickerController!.allowsEditing = false
self.presentViewController(self.imagePickerController!, animated: true, completion: nil)


}

override func viewDidLoad() {
super.viewDidLoad()


}

override func viewDidAppear(animated: Bool) {

}


override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}


/*
UITextField Delegates
*/

override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {

self.view.endEditing(true)
}

func textFieldShouldReturn(textField: UITextField!) -> Bool {

goodBadInput.resignFirstResponder()
stoppedInput.resignFirstResponder()
ethnicityInput.resignFirstResponder()
nameInput.resignFirstResponder()

return true
}


}

最佳答案

imagePickerController中使用此代码:didFinishPickingMediaWithInfo:

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) {
imagePicker.dismissViewControllerAnimated(true, completion: nil)
var photo = info[UIImagePickerControllerOriginalImage] as? UIImage
}

捕获视频时使用UIImagePickerControllerMediaURL键获取视频URL

关于swift - 使用 ImagePickerController 拍摄视频/照片并在不同 View 上使用它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29712472/

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