2013-09-05 4 views
2

이것은 내 첫 번째 질문이므로 쉽게 가십시오!presentViewController : animated : completion wont 애니메이션

5 개의 탭 막대가있는 iOS 앱이 있으며 각 탭에는 탐색 컨트롤러가 있습니다. 그것은 내가 presentViewController : animated : completion에서 어디에서 호출 되든, 나는 트랜지션에서 애니메이션을 얻지 못했고, 제시된 뷰 컨트롤러는 화면에 나타납니다!

내 UIImagePickerController에서 내 탭 중 하나에서 표시하고 있습니다. 프리젠 테이션 애니메이션이 없지만이를 닫으면 애니메이션이 사라집니다! 그 작업은 단순히이 작업을 수행하는 방법에 매여 여기

는 코드 생성 탭 표시 줄 버튼에서 보낸 코드의 샘플입니다 ..

UserRegistrationViewController *userRegistration = [[UserRegistrationViewController alloc] init]; 

userRegistration.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 

[self presentViewController:userRegistration animated:YES completion:nil]; 

사람이 사물의 어떤 아이디어가있는 경우 그 나는 내가 가장 감사할만한 시도를 할 수 있었다!

+0

@ Lugubrious 이것은 더 이상 사용해야하는 방법이 아닙니다. – mattyohe

답변

2

나는 탭 바 프레스 사이의 전환 중에 애니메이션이 발생하기를 원한다고 가정하고 있습니다. 그렇다면 탭 막대가 전환을 관리하므로 애니메이션을 거의 제어 할 수 없습니다. 탭 누름간에 크로스 페이드를 얻으려고하는 것 같습니다. 탭 표시 줄이 이미 뷰 컨트롤러를 제시하고 있음을

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 

    //Set the view to transparent before it appears. 
    [self.view setAlpha:0.0f]; 
} 

- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 

    //Make the view fade in. Set Opaque at the end for a performance boost. 
    [UIView animateWithDuration:0.5f 
        animations:^{ 
         [self.view setAlpha:1.0f]; 
         [self.view setOpaque:YES]; 
        }]; 
} 

참고 : 당신이 정말 이전 뷰 컨트롤러를 페이드 아웃 할 수는 없지만, 당신은 쉽게이 나타나면 새로운 뷰 컨트롤러 페이드를 만들 수 있습니다. 뷰 컨트롤러를 직접 제시해서는 안됩니다. 탭 바를 사용하면이 작업을 관리 할 수 ​​있습니다. 그것이 바로 그 때문입니다.

관련 문제