From 374c83bdddf966c947b9d8f09a45ceb9727fa598 Mon Sep 17 00:00:00 2001 From: Scott Pfeil Date: Thu, 24 Mar 2022 18:39:06 -0400 Subject: [PATCH] fix missing prepare statements --- .../MVMCoreNavigationOperation.m | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/MVMCore/MVMCore/PresentationHandling/MVMCoreNavigationOperation.m b/MVMCore/MVMCore/PresentationHandling/MVMCoreNavigationOperation.m index 794975d..5f51b16 100644 --- a/MVMCore/MVMCore/PresentationHandling/MVMCoreNavigationOperation.m +++ b/MVMCore/MVMCore/PresentationHandling/MVMCoreNavigationOperation.m @@ -137,6 +137,7 @@ if (self.navigationObject.navigationController.viewControllers.count > 1) { // Although the post animation state is currently fine with pop, store anyway as a precaution self.futureViewControllers = [self.navigationObject.navigationController.viewControllers subarrayWithRange:NSMakeRange(0, self.navigationObject.navigationController.viewControllers.count - 1)]; + [self prepareDisplay]; [self.navigationObject.navigationController popViewControllerAnimated:self.navigationObject.animated]; } else { [self markAsFinished]; @@ -183,7 +184,7 @@ // Store post animation state. NSInteger index = [[self.navigationObject.navigationController viewControllers] indexOfObject:self.navigationObject.viewController]; self.futureViewControllers = [self.navigationObject.navigationController.viewControllers subarrayWithRange:NSMakeRange(0, index + 1)]; - + [self prepareDisplay]; [self.navigationObject.navigationController popToViewController:self.navigationObject.viewController animated:self.navigationObject.animated]; } else { [self markAsFinished]; @@ -195,7 +196,7 @@ if (self.navigationObject.navigationController.viewControllers.count > 1) { // Store post animation state. self.futureViewControllers = @[self.navigationObject.navigationController.viewControllers.firstObject]; - + [self prepareDisplay]; [self.navigationObject.navigationController popToRootViewControllerAnimated:self.navigationObject.animated]; } else { [self markAsFinished]; @@ -213,14 +214,14 @@ - (void)pushViewController { // Although the post animation state is currently fine with push, store anyway as a precaution self.futureViewControllers = [self.navigationObject.navigationController.viewControllers arrayByAddingObject:self.navigationObject.viewController]; - [self navigationController:self.navigationObject.navigationController prepareDisplayForViewController:self.navigationObject.viewController]; + [self prepareDisplay]; [self.navigationObject.navigationController pushViewController:self.navigationObject.viewController animated:self.navigationObject.animated]; } - (void)setViewControllers:(NSArray *)viewControllers { - self.futureViewControllers = viewControllers; if (![self.navigationObject.navigationController.viewControllers isEqualToArray:viewControllers]) { - [self navigationController:self.navigationObject.navigationController prepareDisplayForViewController:viewControllers.lastObject]; + self.futureViewControllers = viewControllers; + [self prepareDisplay]; [self.navigationObject.navigationController setViewControllers:viewControllers animated:self.navigationObject.animated]; } else { @@ -230,8 +231,9 @@ } // Notify delegates to prepare for the controller to be added to the navigation controller. -- (void)navigationController:(UINavigationController *)navigationController prepareDisplayForViewController:(UIViewController *)viewController { - +- (void)prepareDisplay { + UINavigationController *navigationController = self.navigationObject.navigationController; + UIViewController *viewController = self.futureViewControllers.lastObject; if (self.delegate && [self.delegate respondsToSelector:@selector(navigationController:prepareDisplayForViewController:)]) { [self.delegate navigationController:navigationController prepareDisplayForViewController:viewController];