Skip to content

iOS: Fix bottom tabs visibility on iOS 18 - #8363

Open
guyca wants to merge 1 commit into
masterfrom
fix/ios-18-bottom-tabs-visibility
Open

iOS: Fix bottom tabs visibility on iOS 18#8363
guyca wants to merge 1 commit into
masterfrom
fix/ios-18-bottom-tabs-visibility

Conversation

@guyca

@guyca guyca commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

Use the iOS 18 tab bar visibility API so hidden bottom tabs initialize and update correctly. Preserve legacy behavior on earlier iOS versions.

  • route show/hide and hidden-state checks through version-aware APIs
  • add native regression tests and a playground reproduction

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

tabBarHidden requires an SDK-version guard to prevent compilation failures with Xcode 15 or earlier.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Updates iOS bottom-tab visibility handling for iOS 18 while preserving legacy behavior.

Changes:

  • Uses version-aware tab-bar visibility APIs.
  • Adds native regression tests.
  • Adds a playground reproduction.
File summaries
File Description
playground/src/testIDs.ts Adds the reproduction test ID.
playground/src/screens/LayoutsScreen.tsx Adds a hidden bottom-tab modal reproduction.
playground/ios/NavigationTests/UITabBarController+RNNOptionsTest.mm Tests version-aware visibility helpers.
playground/ios/NavigationTests/RNNBottomTabsAppearancePresenterTest.mm Tests initial hidden-state handling.
playground/ios/NavigationTests/BottomTabsControllerTest.mm Tests controller visibility behavior and stack precedence.
ios/UITabBarController+RNNOptions.mm Adds iOS 18 visibility handling, but lacks an SDK preprocessor guard for older Xcode toolchains.
ios/UITabBarController+RNNOptions.h Declares the visibility-state helper.
ios/RNNComponentViewController.mm Uses active tab-bar visibility for layout.
ios/RNNBottomTabsController.mm Synchronizes custom-row visibility.
ios/BottomTabsBasePresenter.mm Applies initial iOS 18 visibility.
Review details
  • Files reviewed: 10/10 changed files
  • Comments generated: 1
  • Review effort level: Balanced

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +195 to +201
- (BOOL)rnn_isTabBarHidden {
if (@available(iOS 18.0, *)) {
return self.tabBarHidden;
}

return self.tabBar.hidden;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants