diff --git a/src/addon/mod/assign/pages/submission-list/submission-list.ts b/src/addon/mod/assign/pages/submission-list/submission-list.ts index 3f661eb37..504a41b8d 100644 --- a/src/addon/mod/assign/pages/submission-list/submission-list.ts +++ b/src/addon/mod/assign/pages/submission-list/submission-list.ts @@ -92,23 +92,6 @@ export class AddonModAssignSubmissionListPage implements OnInit, OnDestroy { }); } - /** - * Check if we can leave the page or not. - * - * @return {boolean|Promise} Resolved if we can leave it, rejected if not. - */ - ionViewCanLeave(): boolean | Promise { - // If split view is enabled, check if we can leave the details page. - if (this.splitviewCtrl.isOn()) { - const detailsPage = this.splitviewCtrl.getDetailsNav().getActive().instance; - if (detailsPage && detailsPage.ionViewCanLeave) { - return detailsPage.ionViewCanLeave(); - } - } - - return true; - } - /** * Fetch assignment data. * diff --git a/src/components/split-view/split-view.ts b/src/components/split-view/split-view.ts index ec7dbd4a4..8808fa88e 100644 --- a/src/components/split-view/split-view.ts +++ b/src/components/split-view/split-view.ts @@ -109,6 +109,10 @@ export class CoreSplitViewComponent implements OnInit, OnDestroy { handleCanLeave(): void { // Listen for the didEnter event on the details nav to detect everytime a page is loaded. this.detailsDidEnterSubscription = this.detailNav.viewDidEnter.subscribe((detailsViewController: ViewController) => { + if (!this.isOn()) { + return; + } + const masterViewController = this.masterNav.getActive(); if (this.masterCanLeaveOverridden) { @@ -133,7 +137,7 @@ export class CoreSplitViewComponent implements OnInit, OnDestroy { return Promise.resolve().then(() => { if (this.originalMasterCanLeave) { // First call the master canLeave. - const result = this.originalMasterCanLeave(); + const result = this.originalMasterCanLeave.apply(masterViewController.instance); if (typeof result == 'boolean' && !result) { // User cannot leave, return a rejected promise so the details canLeave isn't executed. return Promise.reject(null);