내 앱을 시뮬레이션 할 때이 문제가 발생합니다. 오류나 경고는 아니지만 내 콘솔에 나타납니다. 이전에이 문제를 경험 한 사람이 있습니까?
답변
제 경우에는 테이블 뷰에서 두 개의 탭을 매우 빠르게 클릭하면이 오류가 발생합니다.
그 결과 잘못된 제목 이름이 발생하고 뒤로 버튼이 사라집니다. 누군가 뷰를 푸시 할 때 set animated:NO
. 오류가 사라지지만 여전히 이상한 동작이 발생합니다. 두 개의 뷰를 푸시 한 다음 테이블 뷰 화면으로 돌아가려면 두 번 뒤로 돌아 가야합니다.
이 문제를 해결하기 위해 시도한 방법 :
더하다 BOOL cellSelected;
에 viewWillAppear
cellSelected = YES;
didselectcell 델리게이트에서 if (cellSelected){cellSelected = NO; do action ; }
이렇게하면 두 개의 다른 셀을 매우 빠르게 클릭하는 것을 방지 할 수 있습니다.
답변
제 경우에는 항목의 메서드 [self performSegueWithIdentifier:@"SomeIdentifier" sender:self];
내에서 트리거 할 때 발생했습니다 .UINavigationController
viewDidLoad
그것을 viewDidAppear
방법 으로 옮기면 문제가 해결되었습니다.
그 이유는 viewDidLoad
모든 멋진 애니메이션이 이미 완료된 것은 아니지만 모든 것이 완료 되었기 viewDidAppear
때문입니다.
답변
나도이 문제가있다. 이 문제에 대한 두 가지 해결책을 찾았습니다.
- 이 솔루션은 위에서 볼 수 있습니다.
UINavigationController
이 문제가 해결 된 하위 클래스를 찾았습니다 . 버퍼링 된 탐색 컨트롤러
답변
이를 방지하려면 다른 루프에서 코드를 실행해야합니다.
double delayInSeconds = 0.1;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
// Put your code here
[self presentViewController:self.yourModalVC animated:YES completion:nil];
});
답변
나는 같은 문제에 많은 문제가 있었다. 나는 이것을 이렇게 해결했다
1) UIViewController's
지정된 이니셜 라이저를 사용하고 있지 않습니다 initWithNibName:bundle:
. 대신 사용하십시오 init
.
2) animated:YES
NO로 설정 하면 문제가 해결되었습니다. 예.[self.navigationController pushViewController: viewController_Obj animated:NO];
답변
내비게이션 컨트롤러를 사용하여 동일한 문제가 발생했으며 다른 컨트롤러를 푸시했습니다. Buffered Navigation Controller 와 여러 다른 접근 방식 을 사용하려고했지만 작동하지 않았습니다. 그것을 알아내는 데 약간의 시간을 보낸 후 이전 트랜잭션 (애니메이션)이 진행되는 동안 새 뷰 컨트롤러를 푸시하려고하면이 문제가 발생한다는 것을 알았습니다 (약 0.5 초 지속 시간). 어쨌든 내비게이션 컨트롤러를 위임하고 이전 애니메이션이 끝날 때까지 기다리면서 빠른 솔루션을 만들었습니다.
답변
-viewWillAppear, -viewDidAppear, -viewDidLoad, -viewWillDisappear, -viewDidDisappear에서 해당 메서드의 오버로드에서 적절한 수퍼 메서드를 호출하는 것을 잊지 마십시오. 예를 들어 제 경우에는 다음과 같이 메서드 이름이 일치하지 않습니다.
-(void)viewDidAppear
{
[super viewDidDisappear];
//some code staff
..
}
통지 표시 하고 사라 방법은 일치하지 않는