Ошибка размотки перехода на контроллере второго вида
Я пытался выяснить, как реализовать пользовательский переход, чтобы пользователь мог провести по экрану вверх, чтобы получить доступ к раскадровке, приведенной ниже, с помощью этого руководства ( 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)!