So I'm messing around a bit with Ionic 2, and I want to know how to disable the back button for a specific view.
What I'm doing is this.nav.push(SomePage);
It works, but the NavController
automatically puts a back button there for me. How do I disable the back button?
NOTE: I do know that I can use this.nav.setRoot(SomePage)
to set the SomePage as root and not have a back button, but that doesn't provide the useful animation that NavController
automatically does.
EDIT: This question is somewhat old, but it has garnered some attention, so I think it would also be appropriate to mention for future reference that there's another reason you may not want to use this.nav.setRoot
in order to push a page with no back button: it erases the preexisting stack of pages. So if you wanted to still be able to go back to the previous page in code without giving the user a UI way to do so, setRoot
wouldn't allow you to do that.
You can navigate to the page as a modal:
You can use the following Property Decorator in Ionic 2.0.0-rc.6
Docs reference
As you said, the animation is missing with:
Write this for an animation with "back" or "forward":
Okay, what if I need the default animation which is provided and is not "forward" or "back"?
There are some ways:
1. This will provide the default animation
In your current Page, write:
2. Don't set it as root for whatever reason
Okay fine, now we need to take care of a view things.
Notice the
menuIsHidden
property.somePage.html
I hope this will help someone.
Option 1
Hide it in the view by adding the
hideBackButton
attribute to theion-navbar
componentOption 2
Hide it from within the page class by using the
.showBackButton(bool)
method provided by theViewController
classA comment from the Ionic docs
Note
I'd just like to add that these options don't take into account when the hardware back button is pressed. The hardware back button is still likely to cause the active page to pop from the nav stack.
In order to prevent
hideBackButton
to hide your menu icon, use this css in yourapp.scss
:or in case you want somewhere to be shown and somewhere not, change your selector as follow:
ion-navbar[hidebackbutton].show-menu button[menutoggle]