网上看到很多都是写个指令,监听view进出对tab进行显示隐藏,试过挺多个,自己写了一个,都不是太让人满意,问题大多数为:
1、二级页面是隐藏了tab,但是进去三级视图发现tab又出来了
2、三级,四级view隐藏了tab,但是返回键的时候tab一秒后又跑了出来
参考国外资料,如果只要在首页的几个页面中显示tab,其他页面不显示,建议用下面的方式,很好用,直观,明了
控制器里面写
.controller('TabsCtrl', function($scope, $rootScope, $state) {
$rootScope.$on('$ionicView.beforeEnter', function() {
var statename = $state.current.name;
console.log(statename);
//tabs中存在的主页面不需要隐藏,hidetabs=false
if(statename ==='tab.circle'||statename ==='tab.help'||statename ==='tab.my'||statename ==='tab.shop'){
$rootScope.hideTabs = false;
}else{
$rootScope.hideTabs = true;
}
});
})
tab里面
<ion-tabs class="tabs-icon-top tabs-stable tabs-color-energized" ng-class="{'tabs-item-hide': hideTabs}" ng-controller="TabsCtrl">
html里面
<ion-view hide-tabs="true" view-title="{{title}}" ng-init="circDetail()" cache-view="true">