0

지금은 스토리 보드의 segue를 사용하여보기 컨트롤러를 밀어 넣기 때문에 푸시 전환이 하나뿐입니다. 코드에서 "팝"전환을 모방하려면 어떻게해야합니까? 지금 다른 곳에서 스토리 보드를 사용하면서도이 작업을 수행 할 수 있습니까?ViewController 애니메이션을 "팝"애니메이션처럼 보이게 변경 왼쪽에서 오른쪽으로

나는 약간의 변화와 함께, 여기에 최초의 코멘트에 제안 어떤 시도

UPDATE. 여기에 내가 가진 무엇 : 이것은 내가 원하는 거의 얼마나 노력하고 있습니다 만, 원래의 ViewController 그냥 대신 오른쪽으로 슬라이딩으로 사라지고있다

UIViewController *dst = [self destinationViewController]; 
UIViewController *src = [self sourceViewController]; 
[dst viewWillAppear:YES]; 
[dst viewDidAppear:NO]; 

CGRect screenBounds = [[UIScreen mainScreen] bounds]; 
CGRect f = CGRectMake(-screenBounds.size.width, 0, screenBounds.size.width, screenBounds.size.height); 
dst.view.frame = f; 
f.origin.x = screenBounds.size.width; 
src.view.frame = f; 

[UIView transitionFromView:src.view 
        toView:dst.view 
        duration:0.3 
        options:UIViewAnimationOptionTransitionNone 
       completion:^(BOOL finished){ 
    [dst viewDidAppear:YES]; 

    UINavigationController *nav = src.navigationController; 
    [nav popViewControllerAnimated:NO]; 
    [nav pushViewController:dst animated:NO]; 
}]; 

.

+0

맞춤 애니메이션을 사용해야합니다. http://weeny.tk/rF2xe9C –

답변

0
당신은 당신의 stroyboard에 SEGUE 유형 "사용자 정의"를 생성하고 생성 popSegue.m 파일에서 "popSegue"라는 이름의 새 UIStoryboardSegue 클래스를이 추가 할 수 있습니다

: 스토리 보드 편집기에서

-(void)perform{ 
UIViewController *sourceViewContreoller = [self sourceViewController]; 

CATransition *animation = [CATransition animation]; 
[animation setType:kCATransitionFromLeft]; //or kCATransitionFromRight 
[animation setDuration:0.25]; 
[animation setTimingFunction:[CAMediaTimingFunction functionWithName: 
           kCAMediaTimingFunctionEaseIn]]; 

[sourceViewContreoller.navigationController.view.layer addAnimation:animation forKey:@"animateOpacity"]; //or [email protected]"fadeTransition" 

[sourceViewContreoller.navigationController popViewControllerAnimated:YES]; 

[CATransaction commit]; 
} 

을 SEGUE 변경을 선택합니다 Segue 클래스를 "popSegue"로 설정하십시오. 식별자를 "popSegue"로 설정하십시오. 결과에 대해이 내용을 시도해보고 의견을 말하십시오.

+0

실제로보기를 푸시하고 싶지만 팝 전환이 필요합니다. 따라서 왼쪽에서 오른쪽으로 밀어 넣은 뷰가 표시됩니다. 미안, 설명에서, 나는 왼쪽에서 오른쪽으로, 그냥 변화를 의미. – KKendall

+0

코드를 편집 해보십시오. – Kepler

+0

이것은 navcontroller를 터뜨리는 것입니다. 내가보기 컨트롤러를 밀고 싶지만, 그것이 터지는 것처럼 전환 모양을 가지고. – KKendall