我希望协议从继承来自Apple协议UIViewControllerTransitioningDelegate
,添加其他协议要求并为该协议中的某些方法提供默认实现。当我这样做时,方法不会被调用。当我在类中实现方法时,方法做被调用。当协议扩展现有的Apple API协议时,不会调用协议扩展方法
这里就是我说的:
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
}
}
这些方法我试图提供一个默认实现是可选的方法。
我也尝试过为UIView提供默认实现ControllerTransitioningDelegate' – Mingming