From 126bb2114c31f2b42f407f663658784c93f0dae6 Mon Sep 17 00:00:00 2001 From: Isaac Israel Date: Wed, 27 May 2026 15:34:35 +0300 Subject: [PATCH] fix(ios): separate top bar buttons on iOS 26 with zero-width spacers On iOS 26 (Liquid Glass), multiple UIBarButtonItems in the navigation bar merge into a single visual platter when placed adjacent to each other. This makes it impossible for users to distinguish individual buttons. Insert zero-width fixed-space items between bar button items so the system renders each button as a separate element. Gated behind @available(iOS 26.0, *) so earlier versions are unaffected. Fixes #8203 --- ios/RNNButtonsPresenter.mm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/ios/RNNButtonsPresenter.mm b/ios/RNNButtonsPresenter.mm index 3132df061c3..d99dd2a1efd 100644 --- a/ios/RNNButtonsPresenter.mm +++ b/ios/RNNButtonsPresenter.mm @@ -91,6 +91,19 @@ - (void)setButtons:(NSArray *)buttons [barButtonItems addObject:barButtonItem]; } + if (@available(iOS 26.0, *)) { + if (barButtonItems.count > 1) { + NSMutableArray *separated = [NSMutableArray arrayWithCapacity:barButtonItems.count * 2 - 1]; + for (NSUInteger i = 0; i < barButtonItems.count; i++) { + [separated addObject:barButtonItems[i]]; + if (i < barButtonItems.count - 1) { + [separated addObject:[UIBarButtonItem fixedSpaceItemOfWidth:0]]; + } + } + barButtonItems = separated; + } + } + if ([side isEqualToString:@"left"]) { [self replaceCurrentButtons:self.viewController.navigationItem.leftBarButtonItems withButtons:barButtonItems];