0

스택에 네 개의 뷰가 모달로 제공되는 탐색 컨트롤러가 있습니다. 마지막 뷰에는 모달 뷰를 닫는 완료 버튼이 있습니다. 그런 다음 모달보기를 다시 표시하면 첫 번째보기가 아닌 마지막보기로 자동 이동합니다. 해고 된 후에 첫 번째보기에 선을 추가했지만 YES 또는 NO로 설정했는지 여부에 따라 이상한 애니메이션이 추가됩니다. 어쩌면 내가 잘못하고있는거야?모달보기 다시 표시 첫 번째 대신 마지막 VC 가져 오기

- (void)dismissModalView 
{ 
    [self dismissModalViewControllerAnimated:YES]; 
    [self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:([self.navigationController.viewControllers count] -4)] animated:YES]; 
} 

는 업데이트 :

이 모달 뷰를 제공하는 데 사용되는 방법입니다/navcontroller는

- (void)showModalView 
{ 
    self.optionsNavController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 
    [self.navigationController presentModalViewController:self.optionsNavController animated:YES]; 
} 

답변

0

아니, 바로 보인다. 네비게이션 컨트롤러의 상태를 유지하려면보기를 닫을 때 할당이 해제 될 것이므로 모달로 표시하지 마십시오.

모달보기는 일반적으로보기 상태 (예 : 페이지, 로그인 페이지, 설정 페이지 등)를 유지하지 않고 잠시 표시해야하는 정보를 표시하는 데 사용됩니다.

+0

나는 그것을 갖고 싶지 않습니다. 나는 그것의 해산 때 다시 사용자가 그것을 다시 제시 할 때, 그것은 첫 VC에서, 사용자가 마지막으로 중단하지 않았을 때 재설정하고 싶습니다. – Jon

+0

popToViewController 행을 삭제하려고 시도 했습니까? 나는 네가 그렇게 생각하지 않는다. 그렇지 않으면 뷰 계층 구조 다이어그램을 표시 할 수 있습니까? –

+0

예, VC 줄에 팝을 제거하면, 그냥 NavViewroller를 닫을 때의 마지막 뷰를로드합니다. – Jon

0

문제를 단순화하는 경우 실례지만 첫 번째보기 컨트롤러로 곧장 다시 이동해야 할 필요가 있다면 popToRootViewControllerAnimated: 메서드를 popToViewController: 대신 시도해보십시오.

0

난 당신이 게시 해제 코드 문제가 무엇인지 잘 모르겠지만, 다음과 같은 작업을해야합니다 :

- (void)showModalView 
{ 
    self.optionsNavController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 
    [self.optionsNavController popToRootViewControllerAnimated:NO]; 
    [self.navigationController presentModalViewController:self.optionsNavController animated:YES]; 
} 

또한, viewDidLoad 한 번만 뷰가로드 될 때마다 호출 될 것입니다, viewWillAppear a

관련 문제