在单独 class 中实现委托方法

Implementing delegate methods in separate class

我创建了委托,它的方法对于它支持的每个 VC 都是相同的。如何使用而不重复代码?

我的代码

#pragma mark - UIViewControllerTransitioningDelegate

 (id <UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController:(UIViewController *)presented presentingController:(UIViewController *)presenting sourceController:(UIViewController *)source
{
CircularTransitionAnimator *animator = [CircularTransitionAnimator new];
animator.isPresenting = YES;
self.pointForAnimationOfViewUserPhotos = point;
animator.actionPoint = point;
return animator;
}

-(id <UIViewControllerAnimatedTransitioning>)animationControllerForDismissedController:(UIViewController *)dismissed
{
CircularTransitionAnimator *animator = [CircularTransitionAnimator new];
animator.isPresenting = NO;
animator.actionPoint = self.pointForAnimationOfViewUserPhotos;
return animator;

}

您可以使用单独的 class 专用于委托方法,或使用视图控制器子 class,其他 VC 将从中继承。

正如@rounak 建议的那样,您可以创建一个单独的 class 专门用于处理委托。

例子

创建一个 NSObject 子class 并采用 UIViewControllerTransitioningDelegate 并添加和实现委托方法。

在您 VC 中将您的新对象指定为 transitioningDelegate