Я хочу, чтобы протокол наследовал от протокола Apple UIViewControllerTransitioningDelegate
, добавлял дополнительные требования к протоколу и предоставлял реализацию по умолчанию для некоторых методов в этом протоколе. Когда я это делаю, методы не вызываются. Когда я реализую методы в самом классе, вызываются методы do.Методы расширения протокола не вызываются, когда протокол расширяет существующий протокол API Apple
Вот что я говорю:
class FirstViewController: UIViewController, SlideDismissor {
let transition: PercentDrivenInteractiveTransitionWithState? = PercentDrivenInteractiveTransitionWithState()
}
protocol SlideDismissor: UIViewControllerTransitioningDelegate {
var transition: PercentDrivenInteractiveTransitionWithState? { get }
}
extension SlideDismissor {
func animationControllerForDismissedController(dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
return nil // I do return something here, but for this example it isn't necessary
}
func interactionControllerForDismissal(animator: UIViewControllerAnimatedTransitioning) -> UIViewControllerInteractiveTransitioning? {
return transition
}
}
Если добавить следующий код в функции не вызываются.
extension FirstViewController: UIViewControllerTransitioningDelegate {
func animationControllerForDismissedController(dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
return nil // I do return something here, but for this example it isn't necessary
}
func interactionControllerForDismissal(animator: UIViewControllerAnimatedTransitioning) -> UIViewControllerInteractiveTransitioning? {
return transition
}
}
Эти методы, которые я пытаюсь предоставить для реализации по умолчанию, являются необязательными.
I также испытал ту же самую вещь, пытающуюся обеспечить реализацию по умолчанию для 'UIView ControllerTransitioningDelegate' – Mingming