我有这个流程:
联系人页面 - > navController.push(NewContact) - > navController.push(ContactCreated)
如何在ContactCreated页面上显示"返回"按钮将用户返回到root" Contacts"页面而不是NewContact页面?所以我想替换导航堆栈中的页面。
我正在使用Ionic 3。
答案 0 :(得分:1)
您可以按照以下所示进行操作。这是doc。
import { Navbar } from 'ionic-angular';
@Component({
selector: 'your-page',
template: `
<ion-header>
<ion-navbar>
<ion-title>
Your Page
</ion-title>
</ion-navbar>
</ion-header>
<ion-content>
...
</ion-content>
`
})
export class YourPage {
@ViewChild(Navbar) navBar: Navbar;
constructor(private navController: NavController){}
ionViewDidLoad() {
this.navBar.backButtonClick = (e:UIEvent)=>{
this.navController.setRoot('Contacts');
}
}
}
答案 1 :(得分:1)
只需使用popToRoot()
function代替pop()
。
this.navCtrl.popToRoot ();
答案 2 :(得分:1)
pop
紧跟push
后禁用动画:
this.navCtrl.pop({animate: false});
this.navCtrl.push(ContactCreated, null, {animate: false});
答案 3 :(得分:0)
如果要替换导航堆栈中的最后一页,可以这样做:
navController.pop()
.then(() => navController.push(ContactCreated))
.catch(() => navController.push(ContactCreated));
答案 4 :(得分:0)
这样,您可以将页面添加到堆栈的顶部,然后从第二个位置移除实际页面,而无需调用任何其他页面输入事件:
self.navCtrl.push(NextPage, nextParams).then(()=>{
let index = self.viewCtrl.index;
self.navCtrl.remove(index);
});