diff --git a/ui/frame/frame.ios.ts b/ui/frame/frame.ios.ts index de74a415c..e918b069c 100644 --- a/ui/frame/frame.ios.ts +++ b/ui/frame/frame.ios.ts @@ -196,10 +196,6 @@ export class Frame extends frameCommon.Frame { this._heightMeasureSpec = heightMeasureSpec; let result = this.measurePage(this.currentPage); - if (this._navigateToEntry && this.currentPage) { - this.measurePage(this._navigateToEntry.resolvedPage); - } - let widthAndState = view.View.resolveSizeAndState(result.measuredWidth, width, widthMode, 0); let heightAndState = view.View.resolveSizeAndState(result.measuredHeight, height, heightMode, 0); @@ -224,9 +220,6 @@ export class Frame extends frameCommon.Frame { this._layoutWidth = right - left; this._layoutheight = bottom - top; this.layoutPage(this.currentPage); - if (this._navigateToEntry && this.currentPage) { - this.layoutPage(this._navigateToEntry.resolvedPage); - } } public layoutPage(page: pages.Page): void { @@ -363,6 +356,9 @@ class UINavigationControllerImpl extends UINavigationController implements UINav frame._navigateToEntry = null; frame._currentEntry = newEntry; + frame.measurePage(newPage); + frame.layoutPage(newPage); + // In iOS we intentionally delay the raising of the 'loaded' event so both platforms behave identically. // The loaded event must be raised AFTER the page is part of the windows hierarchy and // frame.topmost().currentPage is set to the page instance.