View Controller не будет отклонен и немедленно представит новый контроллер представления
Я пытаюсь представить контроллер представления после того, как считыватель QRCode был закрыт, однако при этом снова отображается контроллер представления считывателя QRCode. Фрагмент кода ниже показывает метод и то, как я отклоняю представление и как я пытаюсь представить следующий контроллер представления. Любая идея о том, почему контроллер представления QR-ридера продолжает представлять себя, когда я пытаюсь представить другой контроллер.
func readerDidCancel(_ reader: QRCodeReaderViewController) {
dismiss(animated: true, completion: nil)
present(ClockInOrOutViewController(), animated: true, completion: nil)
}
2 ответа
Вы должны позвонить present
внутри обработчика завершения dismiss
,
func readerDidCancel(_ reader: QRCodeReaderViewController) {
weak var presentingViewController = self.presentingViewController
self.dismiss(animated: true, completion: {
presentingViewController?.present(ClockInOrOutViewController(), animated: true, completion: nil)
})
}
Если это не работает, это означает, что ваш контроллер представления также был каким-то образом удален. (Уволенный / совали?)
Вы не можете представить контроллер представления, в то время как другой контроллер представления отклоняет, а также присутствует при отклонении контроллера представления. Вы можете сделать что-то вроде этого:
func readerDidCancel(_ reader: QRCodeReaderViewController) {
let presenting = self.presentingViewController
dismiss(animated: true, completion: {
presenting?.present(ClockInOrOutViewController(), animated: true, completion: nil)
})
}