2012-08-06 4 views
5

을 SEGUE하지 : 나는 스토리 보드로 가서 4 가지 애니메이션을 전환 할 수 있습니다 알고모달는이 같은 모달 표시 할 때 모달 SEGUE에서 전환 효과를 제거하는 방법에는 전환

[self performSegueWithIdentifier:@"SomeIdentifier" sender:self]; 

을하지만, 난 몰라 어떤 것을 원해! 어떻게 제거합니까?

나는 presentModalViewController animated: NO이라고 말할 수는 있겠지만 나는 그렇게하지 못한다. performSegueWithIdentifier 메서드를 사용해야합니다.

답변

9

segue가 필요하지만 애니메이션을 원하지 않는 경우 애니메이션이없는 맞춤 segue를 만들어야합니다.

보기 컨트롤러 프로그래밍 가이드에서 Apple "creating custom segues" example을보아야합니다. 원하는대로 애니메이션없이 사용자 지정 모달 섹서를 수행합니다.

+0

우수 muchos gracias. – MobileMon

11

여기에없는 애니메이션 SEGUE의 전체 소스입니다 :

BVNoAnimationSegue.h

#import <UIKit/UIKit.h> 
@interface BVNoAnimationSegue : UIStoryboardSegue 
@end 

BVNoAnimationSegue.m

#import "BVNoAnimationSegue.h" 

@implementation BVNoAnimationSegue 

- (void)perform 
{ 
    [[self sourceViewController] presentModalViewController:[self destinationViewController] animated:NO]; 
} 

@end 

이를 사용하려면, 파일을 추가 (예 : BVNoAnimationSegue.m/.h) 다음 스토리 보드에서 Segue로 'Custom'을 선택하십시오 Segue Class 상자에 BVNoAnimationSegue를 입력하고 입력하십시오. 이 Xcode는 UIViewControllers 사이에서 CTRL- 드래그 할 때 옵션으로 '애니메이션 없음'을 추가 할만큼 충분히 영리한 것 같습니다.

15

스토리 보드에서 세그를 선택하고 속성 검사기에서 "애니메이션"을 선택 취소 할 수 있습니다. 그렇게해야합니다.

+1

우수 답변 이것은 공식적인 대답이어야합니다! –

+5

이것은 모달 스타일에서만 작동하며 푸시에 "애니메이션"옵션이 없습니다. –

-1

또 하나의 방법 우리는

YourViewController *aYourViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"aYourViewControllerIdentifier"]; 
[self.navigationController pushViewController:aYourViewController animated:NO]; 

및 스토리 보드에 컨트롤러를 볼 수 @"aYourViewControllerIdentifier"를 추가 할 수 있습니다.

관련 문제