From d334ac970f3d81d6628d068ef9e26d648f56c98f Mon Sep 17 00:00:00 2001 From: Joshua Quick Date: Mon, 13 Sep 2021 14:33:34 -0700 Subject: [PATCH] fix(ios): navigation bar jumps at end of open animation on iOS15 Fixes TIMOB-28488 --- iphone/Classes/TiUINavigationWindowProxy.m | 17 ++++------------- iphone/Classes/TiUITabGroupProxy.m | 16 +++------------- 2 files changed, 7 insertions(+), 26 deletions(-) diff --git a/iphone/Classes/TiUINavigationWindowProxy.m b/iphone/Classes/TiUINavigationWindowProxy.m index e04608fcccd..53cba817644 100644 --- a/iphone/Classes/TiUINavigationWindowProxy.m +++ b/iphone/Classes/TiUINavigationWindowProxy.m @@ -391,7 +391,10 @@ - (void)cleanNavStack #pragma mark - TiWindowProtocol - (void)viewWillAppear:(BOOL)animated { - if ([self viewAttached]) { + if (navController && [self viewAttached]) { + UIViewController *parentController = [self windowHoldingController]; + [parentController addChildViewController:navController]; + [navController didMoveToParentViewController:parentController]; [navController viewWillAppear:animated]; } [super viewWillAppear:animated]; @@ -527,18 +530,6 @@ - (void)windowWillOpen [super windowWillOpen]; } -- (void)windowDidOpen -{ - // Set parent for navigation controller - if (navController) { - UIViewController *parentController = [self windowHoldingController]; - [parentController addChildViewController:navController]; - [navController didMoveToParentViewController:parentController]; - } - - [super windowDidOpen]; -} - - (void)windowDidClose { [self cleanNavStack]; diff --git a/iphone/Classes/TiUITabGroupProxy.m b/iphone/Classes/TiUITabGroupProxy.m index 5c512b49bd4..2d4e032ae97 100644 --- a/iphone/Classes/TiUITabGroupProxy.m +++ b/iphone/Classes/TiUITabGroupProxy.m @@ -150,19 +150,6 @@ - (void)windowWillOpen [super windowWillOpen]; } -- (void)windowDidOpen -{ - // Set parent view controller for UITabBarController - TiUITabGroup *tabGroup = (TiUITabGroup *)self.view; - if (tabGroup) { - UITabBarController *tabController = [tabGroup tabController]; - UIViewController *parentController = [self windowHoldingController]; - [parentController addChildViewController:tabController]; - [tabController didMoveToParentViewController:parentController]; - } - [super windowDidOpen]; -} - - (void)windowWillClose { TiUITabGroup *tabGroup = (TiUITabGroup *)self.view; @@ -230,6 +217,9 @@ - (void)viewWillAppear:(BOOL)animated; { if ([self viewAttached]) { UITabBarController *tabController = [(TiUITabGroup *)[self view] tabController]; + UIViewController *parentController = [self windowHoldingController]; + [parentController addChildViewController:tabController]; + [tabController didMoveToParentViewController:parentController]; [tabController viewWillAppear:animated]; } [super viewWillAppear:animated];