所以我在 Ionic 2 上有点乱,我想知道如何禁用特定 View 的后退按钮。
我正在做的是 this.nav.push(SomePage);
它有效,但是 NavController
会自动为我放置一个后退按钮。如何禁用后退按钮?
注意:我知道我可以使用 this.nav.setRoot(SomePage)
将 SomePage 设置为 root 并且没有后退按钮,但这不提供有用的动画NavController
自动执行。
编辑:这个问题有点老了,但它已经引起了一些关注,所以我认为也应该提一下以备将来引用,还有另一个原因你可能不想使用 this.nav.setRoot
为了推送一个没有后退按钮的页面:它删除预先存在的页面堆栈。因此,如果您仍然希望能够在不为用户提供 UI 方法的情况下返回代码中的上一页,setRoot
将不允许您这样做。
最佳答案
选项 1
通过向ion-navbar
组件添加hideBackButton
属性将其隐藏在 View 中
<ion-navbar hideBackButton="true">
<ion-title>Sub Page</ion-title>
</ion-navbar>
选项 2
使用 ViewController
类提供的 .showBackButton(bool)
方法在页面类中隐藏它
import { NavController, ViewController } from 'ionic-angular';
export class SubPage {
constructor(public navCtrl: NavController, private viewCtrl: ViewController) { }
ionViewWillEnter() {
this.viewCtrl.showBackButton(false);
}
}
来自 Ionic docs 的评论
Be sure to call this after ionViewWillEnter to make sure the DOM has been rendered.
注意
我只想补充一点,当按下硬件后退按钮时,这些选项不会被考虑在内。硬件后退按钮仍然可能导致事件页面从导航堆栈中弹出。
关于angular - Ionic 2 - 禁用特定 View 的后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37296999/