/// <summary> /// Called when a navigator message is received. /// </summary> /// <param name="message"></param> public void OnNavigatorMessage(NavigatorMessage message) { if (IsDisabled) { return; } if (message.MessageType == NavigatorMessageType.Pop) { Pop(); return; } else if (message.MessageType == NavigatorMessageType.Close) { Close(); return; } var view = message.NavigateToView ?? GetViewAtPath(message.NavigateToPath); if (message.MessageType == NavigatorMessageType.Push) { Push(view, message.Data); } else { Open(view, message.Data); } }
/// <summary> /// Sends message to all navigators to return to previous view. /// </summary> public static void Pop(string navigatorId = null) { // pops view var navigatorMessage = new NavigatorMessage { MessageType = NavigatorMessageType.Pop }; if (navigatorId != null) { Messenger.Send(navigatorMessage, navigatorId); } else { Messenger.Send(navigatorMessage); } }
/// <summary> /// Sends message to all navigators to navigate to the specified path. /// </summary> public static void Push(string path, object data = null, string navigatorId = null) { // navigates to the specified path var navigatorMessage = new NavigatorMessage { NavigateToPath = path, Data = data, MessageType = NavigatorMessageType.Push }; if (navigatorId != null) { Messenger.Send(navigatorMessage, navigatorId); } else { Messenger.Send(navigatorMessage); } }