didRemove method
The Navigator removed route.
If only one route is being removed, then the route immediately below
that one, if any, is previousRoute.
If multiple routes are being removed, then the route below the
bottommost route being removed, if any, is previousRoute, and this
method will be called once for each removed route, from the topmost route
to the bottommost route.
Implementation
@override
void didRemove(Route route, Route? previousRoute) {
super.didRemove(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();
}
}
}