Фатальная ошибка при переходе

Ошибка: "фатальная ошибка: неожиданно найден ноль при развертывании необязательного значения" при переходе между двумя представлениями на одном контроллере представления

Когда я звоню 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: завершение: если вы хотите, чтобы оба представления были в памяти.

Попробуй это:

  1. Добавьте UIView, содержащий оба вида "Front" и "Back". (Добавьте новый вид как суперпредставление как "Фронт", так и "Назад")

  2. Выполните анимацию при переворачивании в режиме "суперпредставления" вместе с операциями скрытия и скрытия при просмотре "спереди" и "сзади". с 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
    }
}
Другие вопросы по тегам