diff --git a/src/navigation/nav-controller-base.ts b/src/navigation/nav-controller-base.ts index e67d5edf786..2849f9e982b 100644 --- a/src/navigation/nav-controller-base.ts +++ b/src/navigation/nav-controller-base.ts @@ -378,7 +378,7 @@ export class NavControllerBase extends Ion implements NavController { opts.direction = opts.direction || DIRECTION_BACK; } - const finalBalance = this._views.length + (insertViews ? insertViews.length : 0) - (destroyQueue ? destroyQueue.length : 0); + const finalBalance = this._views.length + (insertViews ? insertViews.length : 0) - (removeCount ? removeCount : 0); assert(finalBalance >= 0, 'final balance can not be negative'); if (finalBalance === 0 && !this._isPortal) { console.warn(`You can't remove all the pages in the navigation stack. nav.pop() is probably called too many times.`, diff --git a/src/navigation/test/view-controller.spec.ts b/src/navigation/test/view-controller.spec.ts index 078de5741a2..e91a7642c6d 100644 --- a/src/navigation/test/view-controller.spec.ts +++ b/src/navigation/test/view-controller.spec.ts @@ -108,6 +108,7 @@ describe('ViewController', () => { // arrange let viewController = mockView(); let navControllerBase = mockNavController(); + navControllerBase._isPortal = true; mockViews(navControllerBase, [viewController]); viewController.onDidDismiss((data: any) => { @@ -122,6 +123,7 @@ describe('ViewController', () => { // arrange let viewController = mockView(); let navControllerBase = mockNavController(); + navControllerBase._isPortal = true; mockViews(navControllerBase, [viewController]); viewController.onDidDismiss((data: any) => { diff --git a/src/navigation/view-controller.ts b/src/navigation/view-controller.ts index f2e57fb9c34..0cda7dd2f7d 100644 --- a/src/navigation/view-controller.ts +++ b/src/navigation/view-controller.ts @@ -172,7 +172,7 @@ export class ViewController { * @returns {any} data Returns the data passed in, if any. * */ - dismiss(data?: any, role?: any, navOptions: NavOptions = {}) { + dismiss(data?: any, role?: any, navOptions: NavOptions = {}): Promise { if (!this._nav) { return Promise.resolve(false); }