在单独 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
我创建了委托,它的方法对于它支持的每个 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