Выберите изображение или сфотографировать и перейти к новому ViewController - PullRequest
0 голосов
/ 09 мая 2018

Я использую Fusuma https://github.com/ytakzk/Fusuma, а в Fusuma можно внести небольшие изменения в код, поэтому после выбора фотографии или ее переноса я перехожу на новый контроллер представления, например uploadViewcontroller, где выбрано выбранное изображение (позже это было бы неплохо сделать другой вид после фотографирования, чтобы подтвердить это или сделать повторный снимок)?

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Да, вы можете реализовать метод FusumaDelegate fusumaImageSelected (или fusumaMultipleImageSelected, написать там любой код навигации (например, segues, метод pushViewController для navigationController или представление viewControllers) и пропустить через него свое изображение.

import UIKit
import Fusuma

class ViewController: UIViewController {
    @IBOutlet weak var photoLibraryButton: UIButton!

    let fusuma = FusumaViewController()

    override func viewDidLoad() {
        super.viewDidLoad()

        fusuma.delegate = self
        fusuma.allowMultipleSelection = true

    }

    @IBAction
    func showPhotoLibrary() {
        self.present(fusuma, animated: true, completion: nil)
    }

}

extension ViewController: FusumaDelegate {
    func fusumaImageSelected(_ image: UIImage, source: FusumaMode) {

        let vc = UploadViewController()
        vc.image = image

        self.navigationController?.pushViewController(vc, animated: true)

    }

    func fusumaMultipleImageSelected(_ images: [UIImage], source: FusumaMode) {
        let vc = UploadViewController()
        guard let firstImage = images.first else { return }
        vc.image = firstImage

        self.navigationController?.pushViewController(vc, animated: true)
    }

    func fusumaVideoCompleted(withFileURL fileURL: URL) {

    }

    func fusumaCameraRollUnauthorized() {

    }

}

А затем в UploadViewController вы можете делать все, что захотите:

import UIKit

class UploadViewController: ViewController {

    public var image = UIImage()
    var imageView: UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()

        imageView = UIImageView(frame: view.frame)
        imageView.image = self.image

        view.addSubview(imageView)

    }
}
0 голосов
/ 09 мая 2018

Просто напишите свой навигационный код в image selection delegate

если вы поддерживаете allowMultipleSelection = true

затем напишите там навигационный код

func fusumaMultipleImageSelected(_ images: [UIImage], source: FusumaMode) {

            print("Number of selection images: \(images.count)")

            // your navigation code
            let viewController = UIViewController()
            self.present(viewController, animated: true, completion: nil)

}

если вы поддерживаете один выбор allowMultipleSelection = false

Введите там свой навигационный код

func fusumaImageSelected(_ image: UIImage, source: FusumaMode) {

        switch source {

        case .camera:

            print("Image captured from Camera")

        case .library:

            print("Image selected from Camera Roll")

        default:

            print("Image selected")
        }

        // set you controller there

        let viewController = UIViewController()
        self.present(viewController, animated: true, completion: nil)
      //   imageView.image = image
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...