I have two questions regarding navigation in MvvMCross.
How can I truncate the navigation stack?
e.g: A|B|C on the stack, navigating to D makes the stack look like: D
The functionality for manipulating the back stack is platform and app specific - e.g:
Because of this, the actual implementation of UI changes like this is not defined within MvvmCross.
Instead, it's up to you to implement in your applications presenter
.
The basic flow you'll need to follow is:
Work out what your app structure is and what effect(s) you want to achieve
For this effect, declare a custom presentation hint - e.g
public class MyFunkyPresentationHint : MvxPresentationHint
{
public int DegreeOfFunkiness { get; set; }
}
base.ChangePresentation(new MyFunkyPresentationHint() { DegreeOfFunkiness=27 });
public override void ChangePresentation(MvxPresentationHint hint)
{
if (hint is MyFunkyPresentationHint)
{
// your code goes here
return;
}
base.ChangePresentation(hint);
}
For examples of custom presenters, see: http://slodge.blogspot.com/2013/06/presenter-roundup.html
For one example of backstack manipulation, see how Close(this)
is implemented in some of the standard presenters.