2017-09-12 4 views
0

에서 다시 전환 "슬라이드"VC의 B오고 후 잘못된 것 사용자 정의 UIViewControllerAnimatedTransitioning 오브젝트를 사용하여 수직 화면 크기가 1/2이 될 때까지 또한 사용자 정의 프리젠 테이션은 프리젠 테이션 VC A를 이동시켜 사용자 정의 UIPresentationContorllerpresentationWillBegin() 오버라이드로 호출 된 animateAlongsideTransition(in:animation:compeltion)을 사용하여 들어오는 VC B와 함께 슬라이드 업합니다. 프리젠 테이션 VC의 하단 1/2과 하단의 제시된 VC로 분할 화면을 생각하십시오.UIPresentation 컨트롤러 - 레이아웃이 바닥에서 B.</p> <p>의 ViewController에 내가 (A UINavigationController가에 포함)의 ViewController A로부터 사용자 정의 전환을 구현 한 배경

  • VC A는 일부 하위 뷰 (인터페이스 빌더에서 자동 레이아웃) 제한됩니다 (버튼)이 있습니다

    모든 것은 내가 해결할 수없는 것 하나 잔소리 경우를 제외하고 예상대로 작동 VC A의 맨 위 레이아웃 가이드 (다시 VC A는 NavC에 있음).

  • 모달 뷰 (B)를 표시 할 때 이러한 하위 뷰는 전환 (위대한)의 일부로 푸시 업되고 VC B가 해제 될 때 다시 위 아래로 (위대하게) 표시됩니다.
  • 그러나 VC B가 제시되고 앱이 배경에 놓인 다음 포 그라운드로 돌아가는 동안 VC A의 하위보기가 화면 상단에 표시됩니다. 즉, VC A의보기 중간에 상위 (불량) . VC B가 해제 될 때 그들은 중간에 머물러 있습니다 (나쁜) - VC A에서 탐색하여 전체 VC "다시 그리기"를 시작하고 문제를 해결합니다.

나는이 문제가 어떻게하면 포어 그라운드로 되돌아 올 때 다시 조정되는지에 대한 레이아웃 가이드를 가지고 있지만 뷰가 표시되기 전에 문제를 해결하는 방법을 알 수 없다는 것을 알고 있습니다.

이동 방법 중 하나는 "상단 레이아웃 가이드"대신 하위보기의 제약 조건을 "superview top"으로 설정하는 것이지만 자동 레이아웃 지점을 NavC의 일부로 상회합니다.

  • VC A의 viewWillAppear/viewWillDisappear은 절대로이 경우 호출되지 않습니다 (VC A의보기가 절대로 완전히 없어지지 않음). 사용자 정의 UIPresentationController
  • containerViewWillLayoutSubviews/containerViewDidLayoutSubviews하지이라고 하나,이 경우

모든 아이디어는 크게 감사합니다. 아이폰 OS (10), 엑스 코드 8.3

답변

0

엑스 코드 9 컴파일 및 iOS (11)에서 실행이를 해결 한 것으로 보인다. 위의 내 설명을 참조하십시오. Xcode 9/iOS 11 :

VC B가 닫히면 VC A의 버튼이 VC A의 맨 위에 자동으로 재배치됩니다. 위치 변경은 애니메이션이 아니며 이상하게 보입니다 예상대로 자동 레이아웃 제약 조건을 최상위 레이아웃 가이드에 적용합니다.