ViewControllerA, ViewControllerB 및 ViewControllerC 순으로 세 개의보기 컨트롤러가있는 응용 프로그램에서 작업하고 있습니다. 특정 상황에서 사용자가 ViewControllerA에서 ViewControllerC로 바로 가야하지만 불행히도 ViewControllerC로 전환하는 동안 ViewControllerB가 화면에 잠깐 나타납니다. 원하지 않는 부분이 있습니다.iOS에서보기 컨트롤러를 밀어 넣을 때 스택의보기 컨트롤러를 우회하는 데 어려움이 있음
내부 VCA :
가 여기에 내가 함께 일하고 코드입니다 제가 위에서 언급 한 바와 같이
ViewControllerB *vcB = [ViewControllerB new];
ViewControllerC *vcC = [ViewControllerC new];
vcB.rootViewController = self;
[self.navigationController pushViewController:vcB animated:NO];
[self.navigationController pushViewController:vcC animated:YES];
은, 위의 코드는 ViewControllerA에 내부에서 무슨 일이 일어나고, 나는 ViewControllerC 얻을 수 있어요, 문제는 안타깝게도 ViewControllerB가 전환 중에 잠시 표시된다는 것입니다. 아무도 내가 잘못하고있는 것을 볼 수 있습니까? 이것을 해결하기 위해해야 할 일은 무엇입니까?
미리 답변 해 주신 모든 분께 감사드립니다.
안녕하세요, Matt, 귀하의 솔루션에 대해 대단히 감사합니다. 솔루션이 왜 효과가 있는지 설명해 주시겠습니까? 제 질문은, 현재 스택 (예 : vcStack)과 현재 스택이 같지 않은 이유입니다. 그렇다면이 작업이 왜 작동하며 이전 스택을 사용하지 않는 이유는 무엇입니까? – syedfa
안녕하세요 syedfa - 우리가 vcStack을 만드는 이유는 self.navigationController.viewControllerers가 읽기 전용이기 때문에 뷰 스택을 직접 수정할 수 없기 때문입니다. 따라서 포인터를 가변 배열로 복사하고 수정 한 다음 (이 경우 두 VC 추가) 한 번에 전체 스택을 설정해야합니다. 그 질문에 대답합니까? –
정말. 내 질문에, 왜 스택을 수정하는 것 같아요? 이것이 문제가되는 이유는 무엇입니까? 특히 두 개의 View Controller를 동일한 순서로 삽입 할 때 특히 그렇습니다. – syedfa