From 4b5a1ccaa0ec097d8910ceac7fa611d578894bab Mon Sep 17 00:00:00 2001 From: Martin Yankov Date: Thu, 29 Aug 2019 16:51:08 +0300 Subject: [PATCH] fix(ios-tabs): handle nesting proxy view container --- tns-core-modules/ui/tabs/tabs.ios.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tns-core-modules/ui/tabs/tabs.ios.ts b/tns-core-modules/ui/tabs/tabs.ios.ts index 7b56a9226e..be26ca1b0c 100644 --- a/tns-core-modules/ui/tabs/tabs.ios.ts +++ b/tns-core-modules/ui/tabs/tabs.ios.ts @@ -150,10 +150,17 @@ class UIPageViewControllerImpl extends UIPageViewController { scrollViewHeight = this.view.frame.size.height - safeAreaInsetsBottom; } - const parent = owner.parent; + let parent = owner.parent; + + // Handle Angular scenario where Tabs is in a ProxyViewContainer + // It is possible to wrap components in ProxyViewContainers indefinitely + while (parent && !parent.nativeViewProtected) { + parent = parent.parent; + } + if (parent && majorVersion > 10) { // TODO: Figure out a better way to handle ViewController nesting/Safe Area nesting - tabBarTop = Math.max(tabBarTop, owner.parent.nativeView.safeAreaInsets.top); + tabBarTop = Math.max(tabBarTop, parent.nativeView.safeAreaInsets.top); } this.tabBar.frame = CGRectMake(0, tabBarTop, this.tabBar.frame.size.width, tabBarHeight);