NativeScript Angular 2 отключить прокрутку назад на IOS

Кто-нибудь знает, как отключить прокрутку назад после перехода на новую страницу?

Я читал это: http://docs.nativescript.org/angular/core-concepts/angular-navigation

Очистка истории навигации по страницам При навигации по страницам в NativeScript у вас есть возможность перейти на другую страницу и очистить историю навигации по страницам. Это означает, что пользователь не сможет вернуться назад с помощью кнопки "назад" (или проведите назад в iOS). Это полезно в тех случаях, когда у вас есть страница входа в систему, и вы не хотите, чтобы пользователи могли вернуться к ней после входа в систему. Но я хочу вернуться на страницу входа, когда пользователь нажал кнопку выхода.

У меня есть 2 страницы, LoginPage и FirstPage. Я использую RouterExtensions. так что this.nav.navigate(["/firstPage"], { clearHistory: true}); это работает. На второй странице у меня есть кнопка, которая переходит к this.nav.navigate(["/"]) (поэтому вернемся к страница входа). Но я получаю

11 августа 19:30:26 antons-MBP appname[62814]: файл ОШИБКИ КОНСОЛИ:///app/tns_modules/zone.js/dist/zone-node.js:421:23: ошибка: невыполненная (в обещании): TypeError: undefined не является объектом (оценка 'cacheItem.reusedRoute')

2 ответа

Я проверял clearHistory при переходе на новую страницу и кажется, что все работает, как ожидалось. Не могли бы вы проверить, используете ли вы последний CLI и модули. Вы можете найти инструкции здесь, где были описаны, как обновить до последней версии NativeScript. В связи с этим вам нужно обновить tns-core-modules а также nativescript-angular В захватывающем проекте вы можете следовать нижеописанным инструкциям.

  1. tns plugin remove tns-core-modules
  2. tns plugin add tns-core-modules@2.2.0
  3. tns plugin remove nativescript-angular
  4. tns plugin add nativescript-angular@0.3.0

Вы также можете просмотреть мой пример приложения здесь, как использовать clearHistory в NativeScript Angular.

Мне удалось отключить жест смахивания на страницу, вставив следующий код

constructor(private nav: RouterExtensions) {

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

  }

Таким образом, мне не нужно изменять библиотеку, но недостатком является то, что мне нужно повторно включать "interactivePopGestureRecognizer" на каждой странице, на которой я хочу, чтобы смахивание назад работало.

Другие вопросы по тегам