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