보기 컨트롤러 포함을 사용하여 6 개의보기 컨트롤러 사이를 전환합니다. 전환은 분할 된 컨트롤을 사용하여 제어됩니다. 이전의 전환이 완료되기 전에 분할 된 컨트롤의 버튼을 누르지 않으면이 모든 것이 올바르게 작동합니다.보기 컨트롤러 전환이 너무 빨리 수행되면 응용 프로그램이 충돌합니다.
코드입니다 : -이 상황에서
와 응용 프로그램의 충돌 '[: toViewController : 지속 시간 : 옵션 : 애니메이션 : 완료 UIViewController에 transitionFromViewController]가 및 어린이보기 컨트롤러 호출 공통의 부모 뷰 컨트롤러가 있어야합니다'
[self transitionFromViewController:currentVC
toViewController:newVC
duration:1.0
options:UIViewAnimationOptionTransitionFlipFromRight
animations:nil
completion:^(BOOL finished) {
[currentVC removeFromParentViewController];
[newVC didMoveToParentViewController:self];
currentVC = newVC;
}];
애니메이션이 완료 될 때까지 세그먼트 화 된 컨트롤을 비활성화해야합니까? 아니면이 문제를 피하는 더 좋은 방법입니까? 애니메이션 시작하고 각각 종료 될 때
[[UIApplication sharedApplication] beginIgnoringInteractionEvents];
[[UIApplication sharedApplication] endIgnoringInteractionEvents];
를 호출하여
해결되었습니다. 감사합니다 –
단순히 세그먼트 화 된 컨트롤 자체와의 상호 작용을 비활성화하는 것으로 충분하지 않습니까 ('self.segmentedControl.userInteractionEnabled = NO;')? 그건 내 유스 케이스에 맞는 것 같다. –
@RobertAtkins 귀하의 필요에 충분하다면 확실합니다. 내 대답은 충돌을 막는 가장 극단적 인 해결책이지만 이상적인 해결책이 아닙니다 (또는 문제가되는 코드를 포함하기위한 변명이 아닙니다) ;-) –