【问题标题】:Navigation NavController in Ionic 2 app SOLVED! but not in Ionic 3Ionic 2 应用程序中的导航 NavController 已解决!但不在 Ionic 3 中
【发布时间】:2017-01-30 14:41:00
【问题描述】:

我正在使用 Ionic 2 构建一个应用程序,我的问题与导航有关,这不容易解释,但我会尝试:

我有一个页面 (MyFilePage),其中包含来自云的文件列表,我在其中回忆了 navCtrl.push() 用于在文件夹中进行递归导航。在这个页面上,我有一个 ion-fab 按钮,它使用 push() 将我发送到另一个页面 (UplaodPage),其中包含内存设备中的文件列表。在这个页面中,我想起了它上面的方法 push(),作为另一个页面,用于在文件夹中进行递归导航。之后,我选择了我要上传的文件,我要做的是返回到上次访问的 MyFilePage(我进行上传的那个)。

我发布了一张图片,ionic 2 app strucure,可以澄清情况。

谢谢

编辑: 这在 Ionic 2 上使用方法 push(page: any, params?: any, opts?: NavOptions, done?: Function); 很有效,但在 Ionic 3 中却不行,它具有方法 push(page: Page | string, params?: any, opts?: NavOptions, done?: Function): Promise;,其中page是Page|string的类型,getByIndex()方法返回一个ViewController。

有人有解决办法吗?谢谢

【问题讨论】:

    标签: android ionic-framework navigation ionic2


    【解决方案1】:

    如果你想保留页面:

    1- 首先,您需要获取要返回的页面的索引并保存在提供程序(推荐)或存储中。

    let index = this.navCtrl.indexOf(this.navCtrl.getActive());
    

    2-然后你可以像这样进入保存的页面:

    let selectedPage = this.navCtrl.getByIndex(index);
    this.navCtrl.push(selectedPage );
    

    如果您想删除这些页面:

    1-首先,您需要获取要返回的页面的索引,以及在推送页面时的计数器。然后将它们保存在提供程序(推荐)或存储中。

    2-然后您可以转到所选页面并像这样删除另一个:

    this.navCtrl.remove(startIndex+1, removeCount);
    

    更多信息请查看NavController

    【讨论】:

    • 根据您的建议,index 的值始终为-1,浏览任何页面。当我用 this.navCtrl.getByIndex (index) 初始化变量 selectedPage 时; ,其中 index 的值始终为 -1,此变量未定义。
    • 你必须替换视图变量!我也改了答案。
    • 一旦我有时间,我会尽力让你知道。当然,我已经替换了视图变量,但是使用了 this.viewCtrl.index。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2016-12-12
    • 2016-06-26
    • 2016-10-17
    • 2018-08-16
    • 2019-03-29
    • 2017-08-09
    • 2019-01-20
    相关资源
    最近更新 更多