/// <summary> /// Closes this UIViewController. /// </summary> /// <param name="transitionInfo">The transition info affecting the native animation.</param> public async Task Close(UIViewControllerSectionsTransitionInfo transitionInfo) { #if __IOS__ if (_wasClosedNatively) { return; } _isClosingProgrammatically = true; SetTransitionInfo(transitionInfo); await DismissViewControllerAsync(animated : true); #else await Task.CompletedTask; #endif }
#pragma warning restore CS0414 /// <summary> /// Opens this UIViewController. /// </summary> /// <param name="transitionInfo">The transition info affecting the native animation.</param> public async Task Open(UIViewControllerSectionsTransitionInfo transitionInfo) { OpeningTransitionInfo = transitionInfo; #if __IOS__ SetTransitionInfo(transitionInfo); var rootController = UIKit.UIApplication.SharedApplication.KeyWindow.RootViewController; if (!(rootController is MostPresentedRootViewController)) { this.Log().LogWarning($"The RootViewController isn't a {nameof(MostPresentedRootViewController)} which can cause issues with other UIViewController-related Uno features."); } await rootController.PresentViewControllerAsync(this, animated : true); #else await Task.CompletedTask; #endif }
private void SetTransitionInfo(UIViewControllerSectionsTransitionInfo transitionInfo) { ModalInPresentation = !transitionInfo.AllowDismissFromGesture; ModalPresentationStyle = transitionInfo.ModalPresentationStyle; ModalTransitionStyle = transitionInfo.ModalTransitionStyle; }
/// <summary> /// Creates a new instance of <see cref="ModalClosedEventArgs"/>. /// </summary> /// <param name="modalName">The closed modal's name.</param> /// <param name="transitionInfo">The transition info used.</param> public ModalClosedEventArgs(string modalName, UIViewControllerSectionsTransitionInfo transitionInfo) { ModalName = modalName; TransitionInfo = transitionInfo; }