didPop method

  1. @override
void didPop(
  1. Route route,
  2. Route? previousRoute
)
override

The Navigator popped route.

The route immediately below that one, and thus the newly active route, is previousRoute.

Implementation

@override
void didPop(Route route, Route? previousRoute) {

  super.didPop(route, previousRoute);

  // is a framework route?
  if (route.settings.arguments is PageConfiguration) {

    // get pushed & popped route listeners
    var popped = listenersOf(route);
    var pushed = listenersOf(previousRoute);

    // notify popped route(s)
    Map<String?, String>? parameters;
    for (var listener in popped) {
      var result = listener.onNavigatorPop();
      parameters ??= result;
    }

    // notify pushed route(s)
    for (var listener in pushed) {
      listener.onNavigatorPush(parameters: parameters);
    }

    // signal change
    for (INavigatorObserver listener in _listeners) {
      listener.onNavigatorChange();
    }
  }
}