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);
        }