Swift 3: UIViewControllerTransitioningDelegate перестал работать
В моем приложении у меня есть пара классов, используемых для пользовательского перехода. До Swift 3 все работало нормально. Однако после обновления до Swift 3 func presentationController(forPresented presented: UIViewController, presenting: UIViewController?, source: UIViewController)
всегда имеет представление как ноль. Предполагается вернуть UIViewController, который инициирует переход. Все отлично работало с предыдущей версией Swift. Я что-то пропустил?
1 ответ
Я застрял в этой проблеме более часа, в swift 3.0 произошли изменения в соглашении о сигнатурах функций, так что это может быть причиной проблемы, так как это изменение исправило проблему с моей стороны. Поскольку методы протокола были необязательными, они не вызывались, и ошибки не было.
func animationController(forPresented presented: UIViewController, presenting: UIViewController, source: UIViewController) -> UIViewControllerAnimatedTransitioning? {
return ...
}
func animationController(forDismissed dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
return...
}