back method
Goes back a page, tapping the back button when one is on screen.
Implementation
Future<void> back() async {
await _clock.frame();
final PlaybookTree tree = _tree();
for (final Element element in tree.elements) {
final Widget widget = element.widget;
if (widget is! BackButton &&
widget is! CloseButton &&
widget is! CupertinoNavigationBarBackButton) {
continue;
}
if (_centerVisible(element)) {
await _press(
Find.where((Widget w) => identical(w, widget)),
hold: speed.tapHold,
);
return;
}
}
final NavigatorState? navigator = _navigator();
if (navigator == null || !await navigator.maybePop()) {
throw const PlaybookFailure('There\'s no page to go back to.');
}
await _settle(navigated: true);
}