From 4aff9d133399f8f80bb8f1d887bb8c86832a5802 Mon Sep 17 00:00:00 2001 From: Mike Enriquez Date: Tue, 20 Mar 2012 16:50:42 -0400 Subject: [PATCH] Adjust the layout when viewWillAppear Fixes issue with showing a modal, rotating, then dismissing the modal. --- .../ECSlidingViewController.m | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/ECSlidingViewController/Vendor/ECSlidingViewController/ECSlidingViewController.m b/ECSlidingViewController/Vendor/ECSlidingViewController/ECSlidingViewController.m index 89665ae..36c5d6f 100644 --- a/ECSlidingViewController/Vendor/ECSlidingViewController/ECSlidingViewController.m +++ b/ECSlidingViewController/Vendor/ECSlidingViewController/ECSlidingViewController.m @@ -29,6 +29,7 @@ NSString *const ECSlidingViewTopDidReset = @"ECSlidingViewTopDidReset"; - (UIView *)topView; - (UIView *)underLeftView; - (UIView *)underRightView; +- (void)adjustLayout; - (void)updateTopViewHorizontalCenterWithRecognizer:(UIPanGestureRecognizer *)recognizer; - (void)updateTopViewHorizontalCenter:(CGFloat)newHorizontalCenter; - (void)topViewHorizontalCenterWillChange:(CGFloat)newHorizontalCenter; @@ -176,8 +177,7 @@ NSString *const ECSlidingViewTopDidReset = @"ECSlidingViewTopDidReset"; - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; - [self updateUnderLeftLayout]; - [self updateUnderRightLayout]; + [self adjustLayout]; } - (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration @@ -186,6 +186,17 @@ NSString *const ECSlidingViewTopDidReset = @"ECSlidingViewTopDidReset"; [self removeTopViewSnapshot]; } + [self adjustLayout]; +} + +- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation{ + if(![self topViewHasFocus]){ + [self addTopViewSnapshot]; + } +} + +- (void)adjustLayout +{ if ([self underRightShowing] && ![self topViewIsOffScreen]) { [self updateUnderRightLayout]; [self updateTopViewHorizontalCenter:self.anchorLeftTopViewCenter]; @@ -201,12 +212,6 @@ NSString *const ECSlidingViewTopDidReset = @"ECSlidingViewTopDidReset"; } } -- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation{ - if(![self topViewHasFocus]){ - [self addTopViewSnapshot]; - } -} - - (void)updateTopViewHorizontalCenterWithRecognizer:(UIPanGestureRecognizer *)recognizer { CGPoint currentTouchPoint = [recognizer locationInView:self.view];