Как выполнить Segue после выбора изображения - PullRequest
1 голос
/ 16 апреля 2019

Я хочу выполнить переход сразу после того, как пользователь выберет изображение (нажав на изображение).

Я уже проверил идентификатор segue и успешно смог соединить оба контроллера представления.

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
        // Executed when we select an image from the photo library.
        if let image = info[UIImagePickerControllerOriginalImage] as? UIImage {

            // Sets the image to the image view (not really relevant because
            // we push the user to the DetailVC, but let's leave it).
            self.imageView.image = image

            // Closing the image picker.
            self.dismiss(animated: true, completion: nil)

            // Performing segue (It doesn't perform!).
            print("It gets to this point, but doesn't perform.")
            self.performSegue(withIdentifier: "showDetail", sender: nil)
        }
    }

Программа задает изображение для представления изображения, получает этот оператор печати сразу после функции "execute", но переход не выполняется.

Ответы [ 4 ]

1 голос
/ 17 апреля 2019

в раскадровке выберите контроллер представления, у которого есть изображение, наверху есть перетаскивание правой кнопкой мыши желтого круга оттуда к контроллеру представления, к которому вы хотите перейти, и присвойте его идентификатору ID = «segueID» затем отредактируйте свой метод didfinishpicking, как этот

if let img = info[.originalImage] as? uiimage{
myimageview.image = img
dismiss(animated: true) {
self.performSegue(withIdentifier: “segueID”, sender: self)}}
0 голосов
/ 16 апреля 2019

Я полагаю, что проблема заключается в том, что вы закрываете свой контроллер вида / представления перед выполнением segue

// Closing the image picker.
        self.dismiss(animated: true, completion: nil)
0 голосов
/ 16 апреля 2019

Построение ответа @Loren Rogers:

// Closing the image picker.
self.dismiss(animated: true, completion: nil)

Вы на самом деле не отмахиваетесь от UIImagePickerController. Как упоминала Лорен, вы отказываетесь от ViewController. Это потому, что self является ссылкой на ViewController.

Заменить self на picker примерно так:

// Closing the image picker.
picker.dismiss(animated: true, completion: nil)
0 голосов
/ 16 апреля 2019

Вы пробовали:

  • Установка отправителя на self?
  • Убедиться, что ваш ответ имеет правильный тип.(Я знаю, что вы проверили имя, и вы, вероятно, получили бы ошибку, если вы ошиблись в имени, в данном случае я имею в виду «push» против «show detail» и т. Д.)
  • Добавление функции prepareForSegue вудостоверьтесь, что segue действительно вызывается
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...