From 054181237c39875166876144d4b65035e7d60bbf Mon Sep 17 00:00:00 2001 From: Mark de Vocht Date: Mon, 23 Mar 2026 23:34:52 +0200 Subject: [PATCH 1/2] fix --- ios/BottomTabPresenter.mm | 5 ++++- ios/RNNTabBarItemCreator.mm | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/ios/BottomTabPresenter.mm b/ios/BottomTabPresenter.mm index 367a6dfbeb0..e8fda7f80c1 100644 --- a/ios/BottomTabPresenter.mm +++ b/ios/BottomTabPresenter.mm @@ -38,7 +38,10 @@ - (void)mergeOptions:(RNNNavigationOptions *)mergeOptions - (void)createTabBarItem:(UIViewController *)child bottomTabOptions:(RNNBottomTabOptions *)bottomTabOptions { - child.tabBarItem = [_tabCreator createTabBarItem:bottomTabOptions mergeItem:child.tabBarItem]; + UITabBarItem *updatedItem = [_tabCreator createTabBarItem:bottomTabOptions mergeItem:child.tabBarItem]; + if (updatedItem != child.tabBarItem) { + child.tabBarItem = updatedItem; + } } @end diff --git a/ios/RNNTabBarItemCreator.mm b/ios/RNNTabBarItemCreator.mm index 10d4b615a4e..a6161cd0d69 100644 --- a/ios/RNNTabBarItemCreator.mm +++ b/ios/RNNTabBarItemCreator.mm @@ -5,7 +5,7 @@ @implementation RNNTabBarItemCreator - (UITabBarItem *)createTabBarItem:(UITabBarItem *)mergeItem { - return [UITabBarItem new]; + return mergeItem ?: [UITabBarItem new]; } - (UITabBarItem *)createTabBarItem:(RNNBottomTabOptions *)bottomTabOptions From a744ebef23be067f5a7bfdadbe67c0ba6793170b Mon Sep 17 00:00:00 2001 From: Mark de Vocht Date: Tue, 24 Mar 2026 00:17:13 +0200 Subject: [PATCH 2/2] test update --- playground/ios/NavigationTests/BottomTabPresenterTest.mm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/playground/ios/NavigationTests/BottomTabPresenterTest.mm b/playground/ios/NavigationTests/BottomTabPresenterTest.mm index e23bb455c9f..176d873ea0a 100644 --- a/playground/ios/NavigationTests/BottomTabPresenterTest.mm +++ b/playground/ios/NavigationTests/BottomTabPresenterTest.mm @@ -57,7 +57,7 @@ - (void)testMergeOptions_shouldSetTabBarItemColorWithDefaultOptions { XCTAssertEqual(self.componentViewController.tabBarItem.title, @"title"); } -- (void)testMergeOptions_shouldCreateNewTabBarItemInstance { +- (void)testMergeOptions_shouldReuseExistingTabBarItemInstance { RNNNavigationOptions *defaultOptions = [RNNNavigationOptions emptyOptions]; defaultOptions.bottomTab.selectedIconColor = [Color withColor:UIColor.greenColor]; self.uut.defaultOptions = defaultOptions; @@ -69,8 +69,8 @@ - (void)testMergeOptions_shouldCreateNewTabBarItemInstance { [self.uut mergeOptions:mergeOptions resolvedOptions:self.options child:self.componentViewController]; - UITabBarItem *newTabBarItem = self.componentViewController.tabBarItem; - XCTAssertNotEqual(currentTabBarItem, newTabBarItem); + UITabBarItem *updatedTabBarItem = self.componentViewController.tabBarItem; + XCTAssertEqual(currentTabBarItem, updatedTabBarItem); } @end