Как получить доступ к коду камеры из других классов и использовать его позже? - PullRequest
0 голосов
/ 02 июня 2018

У меня есть код, который обращается к UIImagePickerController и сохраняет его в изображении.Я не хочу переписывать это каждый раз, когда я хочу использовать это, так как еще я могу написать это?Простите, я только начал это как хобби еще раз.

func startCamera(){
    if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.camera) {
        let imagePicker = UIImagePickerController()
        imagePicker.delegate = self
        imagePicker.sourceType = UIImagePickerControllerSourceType.camera
        imagePicker.allowsEditing = true
        self.present(imagePicker, animated: true, completion: nil)
    }

1 Ответ

0 голосов
/ 02 июня 2018

Вы можете сделать расширение UIViewController, затем вы можете получить к нему доступ в любом UIViewController, позвонив startCamera().

class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()

        if let imagePicker = startCamera() {
            imagePicker.delegate = self
        }
    }

    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
        // do something
    }
}

extension UIViewController {
    func startCamera() -> UIImagePickerController? {
        if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.camera) {
            let imagePicker = UIImagePickerController()
            imagePicker.sourceType = UIImagePickerControllerSourceType.camera
            imagePicker.allowsEditing = true
            present(imagePicker, animated: true, completion: nil)
            return imagePicker
        } else {
            return nil
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...