2013-04-16 3 views
0

iOS 응용 프로그램에서 두 개의 하위보기를 뒤집는 데 어려움이 있습니다. 설치 방법은 인터페이스 파일에서보기를 만들었습니다. 보기가로드되면보기 1이 해당보기에 나타납니다 (addSubview 사용). View1에서 버튼을 누르면 뷰 2가 표시됩니다. 이 코드를 실행하면 첫 번째 플립 애니메이션이 잘 작동컨테이너보기의 하위보기 뒤집기

-(void)LetUsFlip 
{ 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:1.0]; 
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:_containerView cache:YES]; 

    if ([self.view1 superview]) 
    { 
     NSLog(@"Show View 2"); 
     [view1 removeFromSuperview]; 
     [_containerView addSubview:view2]; 
     [_containerView sendSubviewToBack:view1]; 
    } 
    else 
    { 
     NSLog(@"Show View 1"); 
     [view2 removeFromSuperview]; 
     [_containerView addSubview:view1]; 
     [_containerView sendSubviewToBack:view2]; 
    } 

    [UIView commitAnimations]; 
} 

, 즉,보기 2 버튼을 누른에 표시됩니다 : StackOverflow의 다양한 질문에서

, 나는 다음과 같은 코드를 구현했습니다. 그러나 뷰 2의 버튼을 다시 누르면 애니메이션이 발생하고 뷰 1은 이 아니며이 표시됩니다. - 빈 화면이 나타납니다. View1과 View2의 단추가 각각 위의 메서드를 호출합니다. NSLog는 애니메이션과 관련하여 문제가 발생하는 것과 정확히 동일한 방식으로 작동합니다.

감사합니다.

+0

'view1'과'view2'는 어떻게 선언되어 있습니까? 약한, 강한? – zoul

+0

Hey zoul, 다음과 같이 선언되었습니다. @property (weak, nonatomic) IBOutlet UIScrollView * view1; –

답변

2

두 번째 전환 중 nil 이외의 것이 있습니까? 약한 속성에 저장됩니다. 즉, 수퍼 뷰에서 제거 할 때 할당 취소 될 수 있습니다. 속성 선언을 strong으로 변경하고 도움이되는지 확인해보십시오.

+0

그것은 일했다.. 감사합니다! :) –

+0

도와 드리겠습니다. – zoul

관련 문제