Фатальная ошибка при переходе
Ошибка: "фатальная ошибка: неожиданно найден ноль при развертывании необязательного значения" при переходе между двумя представлениями на одном контроллере представления
Когда я звоню Flip1
Функция это дает мне ошибку выше.
Код ниже:
@IBAction func Flip(_ sender: AnyObject){
UIView.transition(from: Back, to: Front, duration: 0.5, options: UIViewAnimationOptions.transitionFlipFromLeft, completion: nil)
}
@IBAction func Flip1(_ sender: AnyObject){
UIView.transition(from: Front, to: Back, duration: 1, options: UIViewAnimationOptions.transitionFlipFromRight, completion: nil)
}
2 ответа
Да, я наконец-то нашел ошибку.
Просто сделайте розетку сильной ссылкой или слабой, как:
@IBOutlet var Front: UIView!
@IBOutlet var Back: UIView!
и это сделано!
Вот ответ на вашу проблему: transitionFromView: toView: duration: Опции: завершение:
Параметры (согласно документации):
fromView
Исходный вид для перехода. По умолчанию это представление удаляется из своего суперпредставления как часть перехода.смотреть
Конечный вид для перехода. По умолчанию это представление добавляется в суперпредставление fromView как часть перехода.
Решение вашей проблемы:
Используйте transitionWithView:duration:options: анимации: завершение: вместо transitionFromView:toView:duration:options: завершение: если вы хотите, чтобы оба представления были в памяти.
Попробуй это:
Добавьте UIView, содержащий оба вида "Front" и "Back". (Добавьте новый вид как суперпредставление как "Фронт", так и "Назад")
Выполните анимацию при переворачивании в режиме "суперпредставления" вместе с операциями скрытия и скрытия при просмотре "спереди" и "сзади". с transitionWithView: длительность: опции: анимация: завершение: блок анимации
Образец кода:
@IBOutlet var superView: UIView!
@IBOutlet var Back: UIView!
@IBOutlet var Front: UIView!
@IBAction func Flip(_ sender: AnyObject){
self.Front.isHidden = false
self.Front.alpha = 0.1
UIView.transition(with: superView, duration: 0.5, options: .transitionFlipFromLeft, animations: {
self.Back.alpha = 0.1
self.Front.alpha = 1.0
}) { (isCompleted) in
self.Back.isHidden = true
}
}
@IBAction func Flip1(_ sender: AnyObject){
self.Back.isHidden = false
self.Back.alpha = 0.1
UIView.transition(with: superView, duration: 0.5, options: .transitionFlipFromRight, animations: {
self.Front.alpha = 0.1
self.Back.alpha = 1.0
}) { (isCompleted) in
self.Front.isHidden = true
}
}