Я застрял на этой ошибке почти месяц.Я создал пользовательский переход под названием SegueFromRight.Я в значительной степени копирую код из некоторых онлайн-уроков.Segue работал для моего loginView, но он всегда терпел крах на более поздней сцене.Представление было уже представлено, и анимация была также выполнена.Он потерпел крах через несколько секунд после того, как была выполнена передача, и выдал мне следующую ошибку:
Thread 1: EXC_BAD_ACCESS (code=2, address=0x7ffeed362ff8)
Я проверил свой вид и не нашел ни одного свисающего выхода.И очень странно, что эта ошибка не произошла, если я использовал стандартную передачу, такую как Показать или Показать детали.Это произошло только тогда, когда я пытаюсь использовать этот пользовательский переход.Ошибка произошла в строке:
src.present(dst, animated: false, completion: nil)
Полный код вставлен ниже.Код, вызываемый этой строкой, написан на ассемблере (наверное?).Так что мне было трудно отлаживать.Я посмотрел на это.Самая низкая ошибка произошла в libMainThreadChecker.dylib`checker_c, который вызывается в presentViewController.Строка с сообщением об ошибке:
0x1064f8d98 <+26>: callq 0x1064fa3da ; symbol stub for: pthread_main_np
Кто-нибудь может определить мою проблему?Спасибо вам большое!И если вам нужно больше кода, не стесняйтесь оставлять комментарии.
class SegueFromRight: UIStoryboardSegue {
override func perform() {
moveInFromRight()
}
func moveInFromRight() {
let src = self.source
let dst = self.destination
dst.view.transform = CGAffineTransform(translationX: src.view.frame.size.width, y: 0)
src.view.superview?.addSubview(dst.view)
UIView.animate(withDuration: 0.25, delay: 0, options: .curveEaseInOut, animations: {
dst.view.transform = CGAffineTransform(translationX: 0, y: 0)
}, completion: { finished in
src.present(dst, animated: false, completion: nil) // gives the error
})
}
}