Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ionic framework 爱奥尼亚:如何覆盖后退按钮功能?_Ionic Framework_Ionic - Fatal编程技术网

Ionic framework 爱奥尼亚:如何覆盖后退按钮功能?

Ionic framework 爱奥尼亚:如何覆盖后退按钮功能?,ionic-framework,ionic,Ionic Framework,Ionic,我需要覆盖两个按钮的后退按钮功能: 导航栏左上角的back图标 硬件后退按钮(例如在android中) 但仅针对一个特定视图,而不是全局视图。我该怎么做呢?这段代码是针对android按钮的,而导航栏上的按钮更简单一些: 安卓按钮: $ionicPlatform.registerBackButtonAction(function (event) { if($state.current.name=="home"){ alert("button back"); } }, 100)

我需要覆盖两个按钮的后退按钮功能:

  • 导航栏左上角的back图标
  • 硬件后退按钮(例如在android中)

但仅针对一个特定视图,而不是全局视图。我该怎么做呢?

这段代码是针对android按钮的,而导航栏上的按钮更简单一些:

安卓按钮:

$ionicPlatform.registerBackButtonAction(function (event) {
  if($state.current.name=="home"){
    alert("button back");
  }
}, 100);
离子按钮:

$ionicPlatform.registerBackButtonAction(function (event) {
  if($state.current.name=="home"){
    alert("button back");
  }
}, 100);

您可以编辑主题并查看如何定义菜单和视图?

可以从控制器中覆盖两个按钮的后退按钮功能。以下是代码:

//按下硬后退按钮或软后退按钮时运行此功能
var doCustomBack=函数(){
控制台日志(“自定义备份”);
};
//覆盖软背
//按下软后退按钮时,框架调用$rootScope.$ionicGoBack
var oldsofback=$rootScope.$ionicGoBack;
$rootScope.$ionicGoBack=function(){
doCustomBack();
};
var deregisterSoftBack=函数(){
$rootScope.$ionicGoBack=oldSoftBack;
};
//覆盖硬背
//registerBackButtonAction()返回一个可用于取消注册的函数
var deregisterHardBack=$ionicPlatform.registerBackButtonAction(
doCustomBack,101
);
//取消自定义返回行为
$scope.$on(“$destroy”,函数(){
注销精装本();
注销软回();
});
确保将
$rootScope
注入控制器


有关更多详细信息和适当解释,请参阅我在相关问题上的完整答案:


当您处于主视图时,导航栏上的“后退”按钮不应存在。因此,我不需要覆盖导航栏的back函数。请注意,此方法返回“一个函数,当调用该函数时,将取消注册此backButtonAction”。有关取消自定义back按钮行为的更多信息,请参阅此问题:这在IOS上不起作用!并且仅适用于硬件后退按钮。。