기본적으로 4 개의 일반보기 컨트롤러가 있고 그 중 하나는 주 콘텐트를 보유하고있는 '홈'보기 컨트롤러입니다. 다른 세 가지는 알림을 확인하고 새로운 콘텐츠를 만드는 등의 작업에 사용됩니다.이 문제는 - 집보기 컨트롤러를 한 번만로드하려는 경우 (앱이 시작될 때)보기 컨트롤러간에 이동할 때 '홈'컨트롤러보기 컨트롤러 사이에서 이동
[self dismissViewControllerAnimated:NO completion:nil];
이렇게하면 현재 컨트롤러가 항상 현재 컨트롤러 뒤에 있어야합니다. 그래서 모든 것을 요약 - 세 가지 컨트롤러의 다른 집에서 이동, 나는
UIViewController *vc=[self.storyboard instantiateViewControllerWithIdentifier:@"RepliesView"];
[self presentViewController:vc animated:NO completion:nil];
와 컨트롤러를로드하고 내가 집에 세 가지 컨트롤러의 이동할 때 현재 뷰 컨트롤러를 닫습니다. 홈과 다른 하나의 컨트롤러 사이를 계속 움직이면 문제가되지 않지만 홈이 아닌 뷰 컨트롤러에서 홈이 아닌보기 컨트롤러로 이동할 때 문제가 발생하므로 기본적으로 컨트롤러를로드 한 다음 현재를 닫아야합니다. 하나는 적재 된 하나가 바로 뒤에있는 홈 컨트롤러를 가지고 있기 때문에 집으로 돌아갈 수 있습니다. 지금까지 나는 해고하고 나서 제시하려고 노력했다.
[self dismissViewControllerAnimated:NO completion:nil];
UIViewController *vc=[self.storyboard instantiateViewControllerWithIdentifier:@"RepliesView"];
[self presentViewController:vc animated:NO completion:nil];
그러나 이것은 '보기가 창 계층 구조에 없다!'라고 말한다. 경고 및 표시되는보기는 인스턴스화되는 것이 아니라 가정보기입니다.
[self dismissViewControllerAnimated:NO completion:^{
UIViewController *vc=[self.storyboard instantiateViewControllerWithIdentifier:@"RepliesView"];
[self.parentViewController presentViewController:vc animated:NO completion:nil];
}];
당신은 당신이를 제공하려고 노력하고 있기 때문에 문제가 발생하는 : 사람이이 작동하는지 해결책을 확인
방금 전에 해고 한보기 컨트롤러에서 프리젠 테이션을 할 수 없다는 것이 문제이므로, 집보기에서보기를 제시해야하거나 제시하지 않고 두 번째보기 만 표시하면되지만 돌아갈 때 두 개의보기 컨트롤러를 동시에 닫습니다. –
그래서 다른보기 컨트롤러에서보기 컨트롤러를 닫을 수있는 방법이 있습니다. [self dismissView ...]가 아니라 [aViewController dismiss ...]? – RodMatveev
난 그냥 2 행을 제시하고 홈보기 컨트롤러에 직접 기각해야한다고 생각합니다. –