2017-04-18 80 views
0

后在我的应用程序的主页,我导航到另一个页面使用: this.navCtrl.push(Page2);NavCtrl:保持页面缓存它弹出

当我点击第二页的“后退”按钮返回到主页,然后回到Page2,我注意到ionViewDidLoad()被再次调用,这意味着Page2不再处于缓存中。

我想这是因为Page2位于堆栈顶部,然后从堆栈中删除。

有没有办法保持页面的当前状态?在第2页上,有一个进度条,我希望用户在使用后退按钮并导航回页面时能够看到进度。进度条无法重置

+0

你可以保存进度条的状态,单独服务也许 –

回答

1

这是不可能的,因为你已经说过,当你回到视图被销毁时。 你可以做的是创建一个自定义组件,它将保存进度条。

  • 你会初始化主页的组件,因此它会在堆栈的底部,如果应用程序关闭才会被破坏。
  • 在你的page2中你会调用函数来初始化进度条,这个函数需要在组件中。
  • 由于Ionic在页面上堆叠页面,因此您需要在组件上使用一些css,如position: absolute; top: 0; left: 0; width: 100%; heigth: 100%; z-index: 9999,如果需要隐藏,只需将布尔变量设置为true false并将css应用于ngClass即可。

如果您需要了解如何创建自定义组件,请按照本教程由Josh Morony

希望它能帮助:)