2014-11-30 3 views
0

내가 정의 전환 관리 개체가 작동하지 않습니다 새 UIViewController에 대한 내비게이션사용자 정의 전환

- (void)navigateToNewScreen 
{ 
    DetailedNewsController *secVC = [[DetailedNewsController alloc] init]; 
    secVC.fullDescription = fullDescription; 
    secVC.headerImage = a.imageView.image; 
    self.transitioningDelegate = self; 
    [self.navigationController pushViewController:secVC animated:YES]; 
} 

- (id<UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController:(UIViewController *)presented 
presentingController:(UIViewController *)presenting 
sourceController:(UIViewController *)source 
{ 
    self.animationController.isPresenting = YES; 
    return self.animationController; 
} 

- (id <UIViewControllerAnimatedTransitioning>)animationControllerForDismissedController:(UIViewController *)dismissed 
{ 
    self.animationController.isPresenting = NO; 
    return self.animationManager; 
} 

@end 

전환의 기본 애니메이션이 수행됩니다. 또한 내비게이션 컨트롤러 막대는 탐색 후에 표시되지 않습니다.

UPDATE : 난`이 AppDelegate에에서 UINavigationController가를 만드는 방법 방법

나는 것은 문제 :

firstVC = [[ViewController alloc] init]; 
navController = [[UINavigationController alloc] initWithRootViewController:firstVC]; 
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
self.window.backgroundColor = [UIColor blackColor]; 
self.window.rootViewController = navController; 
[self.window makeKeyAndVisible]; 
+1

푸시에 대해 사용자 지정 전환을 한 적이 없지만 'secVC.transitioningDelegate = self;'가 아니어야합니다. – mbo42

+0

변경 : secVC.transitioningDelegate = self; secVC.modalPresentationStyle = UIModalPresentationCustom; [self presentViewController : secVC 애니메이션 : 예 완료 : 없음]; 그리고 그것은 작동합니다. 그러나 navigationBar가 숨겨져 있습니다 – Dimitrio

+0

내 대답을 확인하고 작동하는지 알려주세요 – mbo42

답변

1

난 당신이 제공 한 새로운 정보로 답변을 할 수 있습니다. 내가 답을하는 이유는 단지 복사 붙여 넣기 코드를주고 싶지 않고 그 뒤에 간단한 설명을하려고하기 때문입니다. 올바르게 이해했다면, 이제는 ViewController를 커스텀 트랜지션과 함께 표현하고자합니다. 우리가 일어나서 실행, 무슨 일이 현재 실종이 표시하려는의 ViewController의 내비게이션 바이기 때문에

secVC.transitioningDelegate = self; 
secVC.modalPresentationStyle = UIModalPresentationCustom; 
[self presentViewController:secVC animated:YES completion:nil]; 

:

그래서 당신이 당신의 코드를 변경하여 작업 사용자 정의 전환을 얻었다. ViewController를 표시하고 있기 때문에 현재 제시하고있는 ViewController가있는 기존 NavigationController 스택에는 포함되지 않습니다.

따라서 UINavigationController 내에 표시하려는 VC를 래핑해야합니다.

[self presentViewController:[[UINavigationController alloc] initWithRootViewController:secVC] animated:YES completion:nil]; 
+0

고마워요, 포장하려고했습니다. 그러나이 경우 사용자 정의 애니메이션이 나타나지 않고 탐색 모음에 뒤로 버튼이 없습니다. viewController를 루트가 아닌 자식으로 스택에 추가해야한다고 가정합니다. – Dimitrio

+0

대신 현재 수행하려는 줄 알았습니까? 어떤 경우에는 뒤로 버튼이 NavigationBar에 추가되지 않습니다. NavigationBar가 어떤 탐색 컨트롤러 스택에도 추가되지 않기 때문입니다. – mbo42

+0

루트 컨트롤러 – Dimitrio

관련 문제