У меня есть один UIViewController
(пусть он называется контроллером A), который открывается поверх текущего контроллера (пусть он называется B) с постепенной анимацией.В контроллере А есть только один UITextVİew
и два UIButton
(Закрыть и Продолжить). Я могу успешно представить и отклонить его с помощью анимации.Однако, когда я вызываю метод делегата после завершения функции dismiss, textView остается на экране, пока не закончится вся анимация, а затем сразу исчезнет.Что может вызвать это?и как я могу это решить?
Код отзыва:
let transition = CATransition().fadeTransition()
transition.isRemovedOnCompletion = true
self.view.window!.layer.add(transition, forKey: nil)
self.dismiss(animated: false, completion: {
self.kvkkControllerProtocol?.backFromCamera() //If I comment this everything works great.
})
Как я объявляю протокол:
weak var aggrementDelegate: PushToCameraController?
Функция делегата:
func pushToCameraController() {
let controller = BarcodeReaderViewController()
controller.comesFromKvkk = false
self.navigationController?.pushViewController(controller, animated: true)
}
Как я представляю контроллер A:
let kvkkController = AggrementViewController()
kvkkController.aggrementDelegate = self
kvkkController.kvkkControllerProtocol = self
kvkkController.view.backgroundColor = .clear
kvkkController.modalPresentationStyle = .overCurrentContext
kvkkController.modalTransitionStyle = .crossDissolve
kvkkController.callbackClosure = { [weak self] in
self?.removeBlur()
}
РЕДАКТИРОВАТЬ: я обнаружил, что если я комментирую коды внутри функции pushToCameraController (), все работает нормально.Кроме того, контроллер B находится внутри UINavigationController