public override PopOperation AsPopOperation() { if (Container != null) { Stack.Clear(); return(Container.AsSpecificPopOperation(this)); } var result = new NavigationControllerPopOperation(this, Stack.Count); Stack.Clear(); return(result); }
private bool TryMerge(PopOperation op1, PopOperation op2, out PopOperation res) { if (op1 is NavigationControllerPopOperation nav1 && op2 is NavigationControllerPopOperation nav2) { if (nav1.HostStack == nav2.HostStack) { res = new NavigationControllerPopOperation(nav1.HostStack, nav1.CountToPop + nav2.CountToPop); return(true); } } res = null; return(false); }