Segue Right, Segue Left бросает: приложение пыталось представить модальный активный контроллер в Swift. Зачем? - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь перейти влево и вправо между моими VenueListVC и VenueDetailsVC. Но я получаю следующую ошибку: 'Application tried to present modally an active controller <VenueDetailsVC: 0x104098980>.', когда я возвращаюсь к исходному VC, используя SegueFromLeft переход с назначенным классом.

У меня есть следующие классы; SegueFromRight, который преобразует и анимирует целевой VC справа и класс SegueFromLeft чуть ниже него, нацеленный на достижение чего-то похожего, но скорее с левой стороны, добавляя '-' минус в translationX: -src.view.frame.size.width.

class SegueFromRight: UIStoryboardSegue {
override func perform() {
    let src = self.source
    let dst = self.destination

    src.view.superview?.insertSubview(dst.view, aboveSubview: src.view)
    dst.view.transform = CGAffineTransform(translationX: src.view.frame.size.width, y: 0)

    UIView.animate(withDuration: 0.25,
                   delay: 0.0,
                   options: .curveEaseInOut,
                   animations: {
                    dst.view.transform = CGAffineTransform(translationX: 0, y: 0)
    },
                   completion: { finished in
                    src.present(dst, animated: false, completion: nil)
    }
    )
}

}

class SegueFromLeft: UIStoryboardSegue {
override func perform() {
    let src = self.source
    let dst = self.destination

    src.view.superview?.insertSubview(dst.view, aboveSubview: src.view)
    dst.view.transform = CGAffineTransform(translationX: -src.view.frame.size.width, y: 0)

    UIView.animate(withDuration: 0.25,
                   delay: 0.0,
                   options: .curveEaseInOut,
                   animations: {
                    dst.view.transform = CGAffineTransform(translationX: 0, y: 0)
    },
                   completion: { finished in
                    src.present(dst, animated: false, completion: nil)
    }
    )
}

}

У меня есть prepareForUnwind IBAction в моем VenueListVC (источник VC)

@IBAction func prepareForUnwind (segue: UIStoryboardSegue){

}

Я использовал точку выхода в VenueDetailsVC (целевой VC), связанный с prepareForUnwind IBaction VenueListVC (исходный VC).

Я добавил класс SegueFromLeft в последовательность.

enter image description here

Segue right работает отлично, когда я возвращаюсь назад, он выдает ошибку выше, но не до представления исходного VC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...