2017-04-25 3 views
0

UIPresentationController은 기본보기 위에 사이드 뷰를 표시하고 고정 폭 300으로 표시합니다. 그런 다음 사이드 메뉴에서 전체 화면 모달보기를 열 수 있습니다. 모달보기를 닫으면 해고 애니메이션 중에 메뉴보기가 채워집니다 (잘못된 것입니다). 애니메이션이 끝나면 containerViewWillLayoutSubviews이 호출되고 메뉴에서 너비가 300으로 수정됩니다.UIPresentationController는 표시 후까지 containerWaveLayoutSubviews를 호출하지 않습니다.

frameOfPresentedViewInContainerView을 구현합니다. 나는 또한 shouldPresentInFullscreen을 NO (메뉴 뷰에서 NO를 리턴 함)를 구현하고 있는데 (이것은 실제로 결정할 수있는 것에 영향을 미치지 않는 것 같다.)

왜 균열 애니메이션 전에 containerViewWillLayoutSubviews이 호출되지 않습니다? 메뉴보기의 너비가 덮여 있고 밝혀 질 때 어떻게 유지해야합니까? 에

+1

이 질문에 도움이 될 것 같아요. http://stackoverflow.com/questions/32792202/uipresentationcontroller-changes-size-when-another-view-controller-is-displayed/33385472#33385472 – riadhluke

+0

감사합니다. 실제로 도움이됩니다. ! – ima747

답변

0

덕분에 UIPresentationController changes size when another view controller is displayed on top of it

내 솔루션에 저를 지시하기위한 riadhluke하는 것입니다 내 메뉴의 prepareForSegue

되지 손실 될 수있는 메뉴를 야기 전체 화면, 동안으로 전체 화면 모달 프리젠 테이션을 강제
UIViewController *destination = [segue destinationViewController]; 
if (destination.modalPresentationStyle == UIModalPresentationFullScreen) { 
    destination.modalPresentationStyle = UIModalPresentationOverFullScreen; 
} 

, 따라서 해고 사후 애니메이션을 재배치하지 않습니다.