0
votes

does anyone know how to disable the back swipe after navigating to a new page?

I read this: http://docs.nativescript.org/angular/core-concepts/angular-navigation#clearing-page-navigation-history

Clearing Page Navigation History In NativeScript's page navigation, you have the option to navigate to another page and clear the page navigation history. This means that the user will not be able to go back using the back button (or swipe back in iOS). This is useful in scenarios where you have a login page and you don't want users to be able go go back to it once logged in. But I want to go back to login page when the user clicked logout.

I have 2 pages, LoginPage and FirstPage. Im using RouterExtensions. so this.nav.navigate([“/firstPage"], { clearHistory: true}); this works. On second page i have a button that goes to this.nav.navigate([“/”]) (so back to the login page). But I get

Aug 11 19:30:26 antons-MBP appname[62814]: CONSOLE ERROR file:///app/tns_modules/zone.js/dist/zone-node.js:421:23: Error: Uncaught (in promise): TypeError: undefined is not an object (evaluating 'cacheItem.reusedRoute')

2

2 Answers

0
votes

I tested clearHistory while navigating to new page and it seems that everything work as expected. Could you verify, whether you are using latest CLI and modules. You could find instructions here, where have been described how to upgrade to latest NativeScript. In regard to that it you need to upgrade the tns-core-modules and nativescript-angular in exciting project you could follow the below described instructions.

  1. tns plugin remove tns-core-modules
  2. tns plugin add [email protected]
  3. tns plugin remove nativescript-angular
  4. tns plugin add [email protected]

You could also review my sample app here, how to use clearHistory in NativeScript Angular.

0
votes

I was able to disable the swipe gesture per page by inserting the following code

constructor(private nav: RouterExtensions) {

    this.nav.frame.ios.controller.interactivePopGestureRecognizer.enabled = false;

  }

This way I don't have to modify the library, but the downside is that I have to re-enable "interactivePopGestureRecognizer" on every page that i want to the back swipe to work on.