diff --git a/apps/src/tests/Test2252.tsx b/apps/src/tests/Test2252.tsx
new file mode 100644
index 0000000000..338fbd6193
--- /dev/null
+++ b/apps/src/tests/Test2252.tsx
@@ -0,0 +1,86 @@
+import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
+import { NavigationContainer } from '@react-navigation/native';
+import { createNativeStackNavigator } from '@react-navigation/native-stack';
+import { useState } from 'react';
+import { Alert, Button, Text, View, Switch } from 'react-native';
+import React from 'react';
+import { SafeAreaProvider } from 'react-native-safe-area-context';
+
+const RootStack = createNativeStackNavigator();
+const BottomTab = createBottomTabNavigator();
+
+function TabScreen() {
+ return (
+
+
+ );
+}
+
+function TabsScreen() {
+ return (
+
+
+
+ );
+}
+
+export function RootStackNavigator() {
+ return (
+
+
+
+ );
+}
+
+function LoginScreen() {
+ return (
+
+ No tabs
+
+ );
+}
+
+export function LoginStackNavigator() {
+ return (
+
+
+
+ );
+}
+
+export default function App() {
+ const [showTabs, setShowTabs] = useState(true);
+ return (
+
+
+ {showTabs ? : }
+
+
+
+
+ );
+}
diff --git a/apps/src/tests/index.ts b/apps/src/tests/index.ts
index 07b0690531..5c87cf8bab 100644
--- a/apps/src/tests/index.ts
+++ b/apps/src/tests/index.ts
@@ -107,5 +107,6 @@ export { default as Test2229 } from './Test2229';
export { default as Test2231 } from './Test2231';
export { default as Test2232 } from './Test2232';
export { default as Test2235 } from './Test2235';
+export { default as Test2252 } from './Test2252';
export { default as TestScreenAnimation } from './TestScreenAnimation';
export { default as TestHeader } from './TestHeader';
diff --git a/ios/RNSScreen.mm b/ios/RNSScreen.mm
index 932ec9d8db..b86e84f42d 100644
--- a/ios/RNSScreen.mm
+++ b/ios/RNSScreen.mm
@@ -788,7 +788,7 @@ - (void)updateLayoutMetrics:(const react::LayoutMetrics &)layoutMetrics
_newLayoutMetrics = layoutMetrics;
_oldLayoutMetrics = oldLayoutMetrics;
UIViewController *parentVC = self.reactViewController.parentViewController;
- if (parentVC != nil && ![parentVC isKindOfClass:[RNSNavigationController class]]) {
+ if (parentVC == nil || ![parentVC isKindOfClass:[RNSNavigationController class]]) {
[super updateLayoutMetrics:layoutMetrics oldLayoutMetrics:oldLayoutMetrics];
}
// when screen is mounted under RNSNavigationController it's size is controller