2013-10-30 8 views
0

버튼을 클릭했을 때 page 1 버튼이 생겼습니다. 일부 애니메이션을 수행하고 새 페이지로 탐색하는 데 Page 2이라고 말합니다.UIButton 클릭 응용 프로그램이 깨졌습니다.

page 2에 내가 취소 버튼이 있습니다. 예를 들어 Page 1에 내 prevuos 페이지로 돌아가고 싶습니다. 취소 버튼을 클릭하면 내 앱이 다운됩니다. 여기

페이지의 CRViewController의 Page 1: 이름 페이지 RegistraionViewControllerPage 2: 이름에

- (IBAction)ClickMe:(id)sender { 
    RegistraionViewController *secondController = [[RegistraionViewController alloc] init]; 

    CATransition *transitionAnimation = [CATransition animation]; 
    [transitionAnimation setDuration:1]; 
    [transitionAnimation setType:@"push"]; 
    [transitionAnimation setSubtype:kCATransitionFromBottom]; 
    [transitionAnimation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault]]; 

    [self.view.layer addAnimation:transitionAnimation forKey:kCATransitionFromBottom]; 
    [self.view addSubview:secondController.view]; 
} 

코드 내 샘플 코드입니다 (클릭에 충돌하는.)

- (IBAction)Click:(id)sender { 
    CRViewController *secondController = [[CRViewController alloc] init]; 

    CATransition *transitionAnimation = [CATransition animation]; 
    [transitionAnimation setDuration:1]; 
    [transitionAnimation setType:@"push"]; 
    [transitionAnimation setSubtype:kCATransitionFromTop]; 
    [transitionAnimation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault]]; 

    [self.view.layer addAnimation:transitionAnimation forKey:kCATransitionFromBottom]; 
    [self.view addSubview:secondController.view]; 
} 
+0

그리고 응용 프로그램이 충돌하면 오류 메시지가 있습니까? – dandan78

+0

@Krunal : Show 취소 버튼을 만드는 방법. – TamilKing

+0

아니요. 로그에 'lldb'만 표시됩니다. – Krunal

답변

1

사용해보기 :

- (IBAction)ClickMe:(id)sender { 
    RegistraionViewController *secondController = [[RegistraionViewController alloc] init]; 
    [self.navigationController pushViewController:secondController animated:YES]; 
} 


- (IBAction) Click:(id)sender {  
    [self.navigationController popViewControllerAnimated:YES];  
} 

편집 :
죄송합니다.
UIViewController transition - objective-c
http://www.teehanlax.com/blog/custom-uiviewcontroller-transitions/
을 또는 당신이 시도 할 수 있습니다 : 사용자 정의 일부의 UIViewController 전환 애니메이션을 원하는 경우, 아래를 참조

- (IBAction)ClickMe:(id)sender { 
    RegistraionViewController *secondController = [[RegistraionViewController alloc] init]; 

    CATransition *transitionAnimation = [CATransition animation]; 
    [transitionAnimation setDuration:1]; 
    [transitionAnimation setType:@"push"]; 
    [transitionAnimation setSubtype:kCATransitionFromBottom]; 
    [transitionAnimation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault]]; 

    [self.navigationController.view.layer addAnimation:transitionAnimation forKey:nil]; 
    [self.navigationController pushViewController:secondController animated:NO]; 
} 

- (IBAction)Click:(id)sender { 
    CRViewController *secondController = [[CRViewController alloc] init]; 

    CATransition *transitionAnimation = [CATransition animation]; 
    [transitionAnimation setDuration:1]; 
    [transitionAnimation setType:@"push"]; 
    [transitionAnimation setSubtype:kCATransitionFromTop]; 
    [transitionAnimation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault]]; 

    [self.navigationController.view.layer addAnimation:transitionAnimation forKey:nil]; 
    [self.navigationController popToViewController:secondController animated:NO]; 
} 
+0

애니메이션이 필요합니다. 푸시하지 말고 팝업 – Krunal

+0

나는이 코드를 시험해 보았다. 컨트롤러 계층 구조에 navigationController가 있는지 확인해야합니다. – Vincent

+0

애니메이션이 나오지만 애니메이션 후 동일한 파일을로드합니다. – Krunal

0

당신의 문제가 어딘가에 때문에 서브 뷰의 누워있다. 나는 당신의 코드를 시도했다.

내 프로젝트에서 다음 코드를 약간의 애니메이션으로 사용하여 도움이 되었기를 바랍니다.

CATransition *animation = [CATransition animation]; 
    [animation setDelegate:self]; 
    [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]]; 
    [animation setDuration:0.8]; 
    [animation setType:kCATransitionFade]; 
    [animation setSubtype:kCATransitionMoveIn]; 

    //[[self.view layer]addAnimation:animation forKey:@"fview"]; 

    [self.navigationController.view.layer addAnimation:animation forKey:nil]; 

    [self.navigationController pushViewController:yourView animated:NO]; 

애니메이션 유형에서 원하는 애니메이션을 지정할 수 있습니다. 당신을 도와줍니다

희망. 위의와 후 확인 : *

- (IBAction)ClickMe:(id)sender { 
    RegistraionViewController *secondController = [[RegistraionViewController alloc] init]; 
    CATransition *transitionAnimation = [CATransition animation]; 
    [transitionAnimation setDuration:1]; 
    [transitionAnimation setType:@"push"]; 
    [transitionAnimation setSubtype:kCATransitionFromBottom]; 
    [transitionAnimation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault]]; 
    [self.view.layer addAnimation:transitionAnimation forKey:kCATransitionFromBottom]; 
    [self addChildViewController:secondController]; 
    [self.view addSubview:secondController.view]; 
} 

*

+0

애니메이션을 볼 수 없습니다 : ( – Krunal

+0

내 프로젝트에서이 코드를 지금 실행하고 있습니다. 정확한보기 이름을 전달하면 확인하십시오. 코드에서 하위보기보다는보기를 누르면 애니메이션이 표시됩니다 – Manthan

+0

'RegistraionViewController * secondController = [[RegistraionViewController alloc] init]; CATransition * 애니메이션 = [CATransition 애니메이션]; [애니메이션 setDelegate : 자체]; [애니메이션 setTimingFunction : [CAMediaTimingFunction 함수 이름 : kCAMediaTimingFunctionLinear]]; [애니메이션 setDuration : 0.8]; [애니메이션 setType는 : kCATransitionFade] [애니메이션 setSubtype는 : kCATransitionMoveIn] [self.navigationController.view.layer addAnimation는 : 애니메이션 forKey는 : 닐] [self.navigationController과 pushViewController : secondController 애니메이션 : 아니] ' – Krunal

0

은 1 페이지의 샘플 코드를 교체합니다.

희망이 당신을 도울