2014-02-15 5 views
2

ECSLidingViewController2에서 확대/축소 애니메이션을 사용하여 슬라이딩 전환을 설정하려고합니다. TransitionFun 예 (https://github.com/ECSlidingViewController/ECSlidingViewController/blob/master/Examples/TransitionFun/TransitionFun/METransitionsViewController.m)처럼ECSlidingViewController 확대/축소 애니메이션

, 내 topView있는 navigationController의있는 viewDidLoad에서이 일을 해요 : 내가있는 navigationController 헤더 파일에 ECSlidingViewControllerDelegate 프로토콜을 채택하고있어

id<ECSlidingViewControllerDelegate> transition = [[MEZoomAnimationController alloc] init]; 
self.slidingViewController.delegate = transition; 

self.slidingViewController.topViewAnchoredGesture = ECSlidingViewControllerAnchoredGestureTapping | ECSlidingViewControllerAnchoredGesturePanning; 
self.slidingViewController.customAnchoredGestures = @[]; 
[self.navigationController.view removeGestureRecognizer:self.dynamicTransitionPanGesture]; 
[self.navigationController.view addGestureRecognizer:self.slidingViewController.panGesture]; 

.

그러나이 방법의 조건이 내가 EXC_BAD_ACCESS (1) 오류 얻을 경우는 먼저, ECSlidingViewController.m에 충돌 :

- (CGRect)frameFromDelegateForViewController:(UIViewController *)viewController 
         topViewPosition:(ECSlidingViewControllerTopViewPosition)topViewPosition { 
    CGRect frame = CGRectInfinite; 

    if ([(NSObject *)self.delegate respondsToSelector:@selector(slidingViewController:layoutControllerForTopViewPosition:)]) { 
    id<ECSlidingViewControllerLayout> layoutController = [self.delegate slidingViewController:self 
                  layoutControllerForTopViewPosition:topViewPosition]; 

    if (layoutController) { 
     frame = [layoutController slidingViewController:self 
           frameForViewController:viewController 
             topViewPosition:topViewPosition]; 
    } 
} 

return frame; 

}

사람이 같은 문제가 발생을? 내보기 컨트롤러의 방법과 그것을 잘 작동합니다 : 들으 것은

답변

1

이 내가있는 viewDidLoad에서 할 것입니다

id<ECSlidingViewControllerDelegate> transition = self.zoomAnimationController; 
self.slidingViewController.delegate = transition; 
self.slidingViewController.topViewAnchoredGesture = ECSlidingViewControllerAnchoredGestureTapping | ECSlidingViewControllerAnchoredGesturePanning; 
self.slidingViewController.customAnchoredGestures = @[]; 
[self.navigationController.view addGestureRecognizer:self.slidingViewController.panGesture]; 

나처럼, 당신은 동적 전환을 구현하기 위해 노력하지 않는, 경우에, 당신이해야 라고 당신이 가지고있는 라인을 제거 :

[self.navigationController.viewremoveGestureRecognizer:self.dynamicTransitionPanGesture]; 

IMHO의 당신이 실제로 dynamicTransitionPanGesture 제스처 인식기를 설정하지 않은 이후 EXC_BAD_ACCESS (1) 오류의 원인이 될 수 있는지.

+0

당신의 말이 옳았습니다. Thx 당신의 도움! –

+0

감사합니다. 코드가 저에게 효과적이었습니다. 그러나 나는'EXC_BAD_ACCES –