首页 文章

NativeScript Angular 2禁用在ios上向后滑动

提问于
浏览
0

有谁知道如何在导航到新页面后禁用后滑动?

我读了这个:http://docs.nativescript.org/angular/core-concepts/angular-navigation#clearing-page-navigation-history

清除页面导航历史记录在NativeScript的页面导航中,您可以选择导航到另一个页面并清除页面导航历史记录 . 这意味着用户将无法使用后退按钮返回(或在iOS中向后滑动) . 这在您拥有登录页面并且您不希望用户能够在登录后返回到它的情况下非常有用 . 但是我想在用户单击注销时返回登录页面 .

我有2页,LoginPage和FirstPage . 我正在使用RouterExtensions . 所以this.nav.navigate([“/ firstPage”],{clearHistory:true});这是有效的 . 在第二页上我有一个按钮转到this.nav.navigate([“/”])(所以回到登录页面 . )但是我明白了

8月11日19:30:26 antons-MBP appname [62814]:CONSOLE ERROR文件:///app/tns_modules/zone.js/dist/zone-node.js:421:23:错误:未捕获(承诺) :TypeError:undefined不是对象(评估'cacheItem.reusedRoute')

2 回答

  • 0

    我在导航到新页面时测试了 clearHistory ,似乎一切都按预期工作 . 您可以验证您是否使用最新的CLI和模块 . 您可以在此处找到说明,其中介绍了如何升级到最新的NativeScript . 关于这一点,你需要在令人兴奋的项目中升级 tns-core-modulesnativescript-angular ,你可以按照下面的说明进行操作 .

    • tns plugin remove tns-core-modules

    • tns plugin add tns-core-modules@2.2.0

    • tns plugin remove nativescript-angular

    • tns plugin add nativescript-angular@0.3.0

    您还可以查看我的示例应用here,如何在NativeScript Angular中使用 clearHistory .

  • 0

    我可以通过插入以下代码来禁用每页的滑动手势

    constructor(private nav: RouterExtensions) {
    
        this.nav.frame.ios.controller.interactivePopGestureRecognizer.enabled = false;
    
      }
    

    这样我就不必修改库了,但缺点是我必须在每个我希望后面滑动工作的页面上重新启用“interactivePopGestureRecognizer” .

相关问题