11
A
回答
33
據the official Ionic docs,您可以覆蓋的NavBar組件的backButtonClick()
方法:
import { ViewChild } from '@angular/core';
import { Navbar } from 'ionic-angular';
@Component({
selector: 'my-page',
template: `
<ion-header>
<ion-navbar>
<ion-title>
MyPage
</ion-title>
</ion-navbar>
</ion-header>
<ion-content>
...
</ion-content>
`
})
export class MyPage {
@ViewChild(Navbar) navBar: Navbar;
constructor(private navController: NavController){}
ionViewDidLoad() {
this.navBar.backButtonClick = (e:UIEvent)=>{
// todo something
this.navController.pop();
}
}
}
1
如果你想太多手動做到這一點:
添加到您的page.html
<ion-header>
<ion-toolbar>
<ion-buttons start>
<button (click)="goBack()" royal>
<ion-icon name="arrow-round-back"></ion-icon>
</button>
</ion-buttons>
<ion-title>Details page</ion-title>
</ion-toolbar>
</ion-header>
添加在您的page.ts文件:
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
@Component({
templateUrl: 'build/pages/awesome/awesome.html',
})
export class AwesomePage {
constructor(private navCtrl: NavController) {
}
goBack(){
this.navCtrl.pop();
}
}
9
您需要先添加hideBackButton
到ion-navbar
。它將刪除默認的後退按鈕。
然後你添加你自己的按鈕,你可以輕鬆地用一個點擊事件來管理。
的代碼:
<ion-header>
<ion-navbar hideBackButton>
<ion-buttons left>
<button ion-button (click)="doYourStuff()">
<ion-icon class="customIcon" name="arrow-back"></ion-icon>
</button>
</ion-buttons>
<ion-title>Page Title</ion-title>
</ion-navbar>
</ion-header>
doYourStuff()
{
alert('cowabonga');
this.navCtrl.pop(); // remember to put this to add the back button behavior
}
最後一件事:CSS。
該圖標將比通常的後退按鈕小。如果您想使其與Ionic2中使用的默認類似,您需要增加其大小。
.customIcon {
font-size: 1.7em;
}
1
對於自定義默認返回按鈕的動作,你需要重寫backButtonClick()方法的NavBar組件。
在你的「customClass.ts」導入導航欄組件。創建auxMethod以覆蓋默認行爲並在您的ionViewDidLoad方法中調用。
import { Navbar } from 'ionic-angular';
export class myCustomClass {
@ViewChild(Navbar) navBar: Navbar;
...
ionViewDidLoad() {
this.setBackButtonAction()
}
//Method to override the default back button action
setBackButtonAction(){
this.navBar.backButtonClick =() => {
//Write here wherever you wanna do
this.navCtrl.pop()
}
}
}
此代碼已在離子3.
0
爲了防止有人正在尋找過測試。 Ionic 3提供生命週期事件。 「ionViewDidLeave」或「ionViewWillLeave」可用於此目的。
查閱文檔以查看更多活動。 https://ionicframework.com/docs/api/navigation/NavController/
相關問題
- 1. 離子2後退按鈕
- 2. 離子去除後退按鈕和顯示菜單按鈕
- 3. 處理硬件後退按鈕單擊
- 4. 如何避免[navpush]生成的後退按鈕(處理生成後退按鈕)
- 5. JavaScript後退按鈕事件
- 6. 離子:如何顯示後退按鈕
- 7. 生成後退鍵事件
- 8. 單擊瀏覽器後退按鈕時如何調用事件
- 9. 單擊後退按鈕之前處理事件
- 10. 單擊後退按鈕後處理GUI
- 11. 如何更改離子2中後退按鈕的標籤?
- 12. 離子2:處理機器人後退按鈕
- 13. 分配後退按鈕事件以形成Android中的按鈕
- 14. 單擊事件按鈕5次點擊後禁用按鈕
- 15. 按鈕單擊事件後觸發Response.Redirect
- 16. 離子導航後退按鈕不能在離子v1工作
- 17. 通過單擊後退按鈕
- 18. 請在單擊後退按鈕UWP
- 19. Xamarin導航欄後退按鈕單擊
- 20. 後退按鈕單擊不起作用
- 21. 離子2離子搜索欄ionClear不觸發按鈕點擊
- 22. ListBox和selectedIndexChanged事件後,用戶點擊後退按鈕
- 23. 生成按鈕單擊事件的代理
- 24. jquery按鈕單擊事件
- 25. asp.net按鈕單擊事件
- 26. UIWebView按鈕單擊事件
- 27. WPF按鈕單擊事件
- 28. 單擊事件按鈕
- 29. 按鈕單擊事件
- 30. WPF按鈕單擊事件
你不能,爲什麼不只是添加自己的? – LeRoy
@LeRoy究竟是你添加自己的?對不起,我是新開發的ionic2 .. –
你需要在你的頁面做什麼?您是否需要處理*僅*後退按鈕上的點擊,或者想法是在用戶離開頁面時執行某些操作? – sebaferreras