2017-04-25 6 views
0

固定幅のメインビュー上にサイドメニューを表示するUIPresentationControllerがあります。サイドメニューから、全画面モーダルビューを開くことができます。モーダルビューが解除されると、解任アニメーション中にメニュービューが画面に表示されます(これは間違っています)。アニメーションの最後にcontainerViewWillLayoutSubviewsが呼び出され、メニューの幅が300に修正されます。UIPresentationControllerは、表示後までcontainerViewWillLayoutSubviewsを呼び出さない

frameOfPresentedViewInContainerViewを実装しています。私はshouldPresentInFullscreenをメニュービューでNOに戻して実装しています(ただしこれは実際には何にも影響しません)。

containerViewWillLayoutSubviewsがディスムサルアニメーションの前に呼び出されないのはなぜですか?メニュービューの幅をカバーして公開したら、どのように維持する必要がありますか?

+1

この質問は役に立ちます。http://stackoverflow.com/questions/32792202/uipresentationcontroller-changes-size-when-another-view-controller-is-displayed/33385472#33385472 – riadhluke

+0

ありがとうございました! – ima747

答えて

0

私のソリューションが失われないメニューが発生し、フルスクリーン、以上であることをフルスクリーンモーダルプレゼンテーションを強制的に私のメニューのprepareForSegue

UIViewController *destination = [segue destinationViewController]; 
if (destination.modalPresentationStyle == UIModalPresentationFullScreen) { 
    destination.modalPresentationStyle = UIModalPresentationOverFullScreen; 
} 

であるUIPresentationController changes size when another view controller is displayed on top of it

に私を導くためのriadhlukeのおかげで、したがって、解雇後のアニメーションを再レイアウトすることはありません。

関連する問題