저는 루트라고 부르는 UIViewController가 있습니다 (모달 세그) 다른 UIViewController (firstChild)가 제시됩니다 (다시 모달 세그) UINavigationController (topChild)입니다.dismissViewControllerAnimated : 완료 : iOS 7과 iOS 8에서 다른 결과를 생성합니다.
는[root dismissViewControllerAnimated:NO completion:^{
[root performSegueWithIdentifier:@"ToNewFirstChild" sender:self];
}];
아이폰 OS 7,이 효과는 topChild가 newFirstChild에 SEGUE이 완료 될 때까지 화면에 남아 있고, newFirstChild 다음 (루트 제시)가 표시되어있다 : 최고 아이에서 나는 다음을 수행합니다. 나는 그것을 좋아한다.
iOS 8에서 topChild가 화면에서 즉시 제거되고 firstChild가 잠시 표시된 다음 제거되어 segue가 완료 될 때까지 루트가 표시되고 newFirstChild가 표시됩니다 (루트로 표시됨) . 나는 그것을 좋아하지 않는다.
dismissViewControllerAnimated:completion:
에 애니메이션을 적용하면 다음과 같은 결과가 발생합니다. iOS 7에서는 topChild가 애니메이션으로 닫히고 firstChild (문서에 광고 된 내용)가 표시되지 않고 segue가 완료 될 때까지 루트가 표시됩니다. ; iOS8에서는 topChild가 화면에서 즉시 제거되어 firstChild가 생기고 애니메이션은 문서와는 달리 해제되고 다시 segue가 완료 될 때까지 루트가 표시됩니다.
iOS 8에서 iOS 7 (애니메이션 사용 여부에 관계없이)에서 생성 된 효과를 얻으려면 어떻게해야할까요? 내가 뭘 놓치고 있니?
감사합니다. 알림을 보내어 개선 할 수 있는지 알아 봅니다. 하지만 dismissViewControllerAnimated : completion : 수신기를 닫지 않습니다. 그것은 수신자의 자식 UIViewController - 설명서에서 "수신기에 의해 모달로 표시된 뷰 컨트롤러를 닫습니다."및 "여러 개의 뷰 컨트롤러를 연속적으로 제시하여 제시된 뷰 컨트롤러 스택을 구축하고이 메서드를 스택의 하위에있는 뷰 컨트롤러는 해당 자식 뷰 컨트롤러와 그 자식 위의 모든 뷰 컨트롤러를 스택에서 닫습니다. " – frankw