Beispiel #1
0
        void OnDisplayPageModalRequested(object sender, ModalHostPage.DisplayPageModalRequestedEventArgs e)
        {
            e.PageToDisplay.Parent = this.Element;
            IVisualElementRenderer renderer = XFPlatform.GetRenderer(e.PageToDisplay);

            if (renderer == null)
            {
                renderer = XFPlatform.CreateRenderer(e.PageToDisplay);
                XFPlatform.SetRenderer(e.PageToDisplay, renderer);
            }

            // TODO: Now display our modal page.
            var modalElement = renderer.GetNativeElement();

            (Control as FormsLightNavigationPage)?.PushModal(modalElement, true);
        }
Beispiel #2
0
        void OnDisplayPageModalRequested(object sender, ModalHostPage.DisplayPageModalRequestedEventArgs e)
        {
            e.PageToDisplay.Parent = this.Element;
            IVisualElementRenderer renderer = PlatformMethods.GetRenderer(e.PageToDisplay);

            if (renderer == null)
            {
                renderer = RendererFactory.GetRenderer(e.PageToDisplay);
                PlatformMethods.SetRenderer(e.PageToDisplay, renderer);
            }

            // HACK: http://stackoverflow.com/questions/25762466/trying-to-dismiss-the-presentation-controller-while-transitioning-already
            // Since the pop / close operation on the ModalPage is applying the hack, we might need to wait here too...
            DispatchQueue.MainQueue.DispatchAfter(DispatchTime.Now, async() =>
            {
                e.DisplayingPageTask = this.PresentViewControllerAsync(renderer.ViewController, true);
            });
        }