我有一个主选项卡,它只显示项目列表 . 和设置选项卡,其中包含用于设置不同配置的嵌套视图 .
如果我按此特定顺序导航,后退按钮显示不正确,或者如果要显示,则 Headers 不会离开:37px
这就是我创建导航栏的方式 .
<ion-nav-bar class="bar-stable no-animation" align-title="left">
<ion-nav-back-button class="button-icon icon ion-ios7-arrow-back"></ion-nav-back-button>
</ion-nav-bar>
是否有解决方案,要么清除该选项卡的历史记录,那么在单击它时会打开主设置选项卡而不是先前打开的嵌套视图?或者如果需要显示,则应正确计算 Headers 的左侧 .
这是一个codepen演示 . 单击此顺序中的选项卡 .
1. On main page, click on Scientific Facts
2. After view changes, click on Contacts tab
3. Then click on Home tab again. It reproduces the behavior.
更新:
到目前为止,我发现有一个 $scope.$watch
决定是否显示或隐藏后退按钮 . 这会被触发很晚(在计算和 Headers 对齐之后) . 因此,在计算时, leftWidth
不是't get back button'的宽度 .
2 回答
当像这样使用选项卡时,每个选项卡都包含自己的历史记录 . 它实际上正确显示了后退按钮,因为主页面选项卡状态已更改为子页面 . 然后,后退按钮将带您返回此选项卡的主页(后退按钮特定于每个选项卡!) . 第一次单击/点击选项卡按钮可以完成切换选项卡的工作,第二次单击/点击将实际将用户带到该选项卡的默认页面 . 该错误有时仍然应用后退按钮宽度 .
我相信Ionic团队正在为此进行一些改进和修复 .
您可以在主页的控制器中使用
$ionicNavBarDelegate.showBackButton(false);
来禁用该视图中的后退按钮 . 您还可以将nav-clear
指令置于锚标记上,以明确隐藏链接视图中的后退按钮 .Controller Example
如果您仅使用Angular Routes,请使用follwoing
$route.reload()
如果在Ionic上使用UI-Router,也可以使用以下命令
$state.go($state.current, {}, );