Ошибка размотки перехода на контроллере второго вида

Я пытался выяснить, как реализовать пользовательский переход, чтобы пользователь мог провести по экрану вверх, чтобы получить доступ к раскадровке, приведенной ниже, с помощью этого руководства ( http://www.appcoda.com/custom-segue-animations/). Это работало без проблем до тех пор, пока не потребовалась реализация части перемотки segue, и я продолжал получать ошибки с этим блоком кода:

override func segueForUnwindingToViewController(toViewController: UIViewController, fromViewController: UIViewController, identifier: String?) -> UIStoryboardSegue {
if let id = identifier{
    if id == "idFirstSegueUnwind" {
        let unwindSegue = FirstCustomSegueUnwind(identifier: id, source: fromViewController, destination: toViewController, performHandler: { () -> Void in

        })
        return unwindSegue
    }        
}

return super.segueForUnwindingToViewController(toViewController, fromViewController: fromViewController, identifier: identifier)

}

Особенно с этой строкой:

return super.segueForUnwindingToViewController(toViewController, fromViewController: fromViewController, identifier: identifier)

Это выдает ошибку вроде этого: Значение необязательного типа 'UIStoryboardSegue?' не развернутый; ты хотел использовать '!' или же '?'?

Я попытался заменить его этой строкой кода, думая, что, возможно, возникла проблема с параметрами:

return super.segueForUnwindingToViewController(toViewController: UIViewController, fromViewController: UIViewController, identifier: String?) 

но на этот раз я получаю отсутствующий аргумент для параметра "fromViewController" в ошибке вызова.

У кого-нибудь есть какие-либо предложения о том, как решить эту проблему?

1 ответ

Вы должны развернуть необязательный тип UIStoryboardSegue с "!":

return super.segueForUnwindingToViewController(toViewController, fromViewController: fromViewController, identifier: identifier)!
Другие вопросы по тегам