To enable customization of back navigation per page, OnBackNavigation
is added to Page.
e.g.
class CustomPage : Page
{
protected override OnBackNavigation(PageBackNavigationEventArgs args)
{
// Do something when back navigation is started.
...
// To pop this page, call base.OnBackNavigation().
// Otherwise, do not call base.OnBackNavigation().
base.OnBackNavigation(args);
}
}
[EditorBrowsable(EditorBrowsableState.Never)]
protected virtual void OnBackNavigation(BackNavigationEventArgs eventArgs)
{
- if ((PageCount >= 1) && Peek().EnableBackNavigation)
+ if (PageCount >= 1)
{
- Tizen.Log.Info("NUI", $"Navigator pops the peek page.\n");
- Pop();
+ if (Peek().EnableBackNavigation)
+ {
+ Peek().NavigateBack();
+ }
}
}
}
}
+ /// <summary>
+ /// Called when the back navigation is started.
+ /// </summary>
+ /// <param name="eventArgs">The back navigation information.</param>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ protected virtual void OnBackNavigation(PageBackNavigationEventArgs eventArgs)
+ {
+ Navigator.Pop();
+ }
+
+ /// <summary>
+ /// Called when the back navigation is required outside Navigator.
+ /// </summary>
+ internal void NavigateBack()
+ {
+ OnBackNavigation(new PageBackNavigationEventArgs());
+ }
+ }
+
+ /// <summary>
+ /// PageBackNavigationEventArgs is a class to record back navigation event arguments which will sent to user.
+ /// </summary>
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ public class PageBackNavigationEventArgs : EventArgs
+ {
}
}