private void GoToAccounts(object o) { var vc = new AccountsViewController(); var nav = new ThemedNavigationController(vc); PresentViewController(nav, true, null); }
public static NewCommentViewController Present(UIViewController parent, Func <string, Task> saveAction) { var vc = new NewCommentViewController(saveAction); var nav = new ThemedNavigationController(vc); parent.PresentViewController(nav, true, null); vc.Dismissed.Subscribe(_ => vc.DismissViewController(true, null)); return(vc); }
public static UIViewController PresentUpgradeViewController(this UIViewController @this) { var vc = new UpgradeViewController(); var nav = new ThemedNavigationController(vc); var navObj = new UIBarButtonItem(Images.Buttons.CancelButton, UIBarButtonItemStyle.Done, (_, __) => @this.DismissViewController(true, null)); vc.ViewWillAppearCalled += (sender, e) => vc.NavigationItem.LeftBarButtonItem = navObj; vc.ViewDidDisappearCalled += (sender, e) => vc.NavigationItem.LeftBarButtonItem = null; @this.PresentViewController(nav, true, null); return(vc); }
private void DoTransition(UIViewController fromViewController, IBaseViewModel fromViewModel, UIViewController toViewController, IBaseViewModel toViewModel) { var toViewDismissCommand = toViewModel.DismissCommand; // if (toViewController is SettingsViewController) // { // toViewController.NavigationItem.LeftBarButtonItem = new UIBarButtonItem(CodeFramework.iOS.Images.Cancel, UIBarButtonItemStyle.Plain, (s, e) => toViewDismissCommand.ExecuteIfCan()); // toViewDismissCommand.Subscribe(__ => toViewController.DismissViewController(true, null)); // fromViewController.PresentViewController(new UINavigationController(toViewController), true, null); // } if (toViewController is AccountsView || toViewController is WebBrowserViewController || toViewController is GistCommentView || toViewController is CommitCommentView || toViewController is GistCreateView || toViewController is FeedbackComposerView) { var rootNav = (UINavigationController)UIApplication.SharedApplication.Delegate.Window.RootViewController; toViewController.NavigationItem.LeftBarButtonItem = new UIBarButtonItem(Images.Cancel, UIBarButtonItemStyle.Plain, (s, e) => toViewDismissCommand.ExecuteIfCan()); toViewDismissCommand.Subscribe(_ => rootNav.DismissViewController(true, null)); rootNav.PresentViewController(new ThemedNavigationController(toViewController), true, null); } // else if (fromViewController is RepositoriesViewController) // { // fromViewController.NavigationController.PresentViewController(toViewController, true, null); // } else if (toViewController is MenuView) { var nav = ((UINavigationController)UIApplication.SharedApplication.Delegate.Window.RootViewController); var slideout = new SlideoutNavigationController(); slideout.MenuViewController = new MenuNavigationController(toViewController, slideout); UIView.Transition(nav.View, 0.1, UIViewAnimationOptions.BeginFromCurrentState | UIViewAnimationOptions.TransitionCrossDissolve, () => nav.PushViewController(slideout, false), null); } else if (toViewController is NewAccountView && fromViewController is StartupView) { toViewDismissCommand.Subscribe(_ => toViewController.DismissViewController(true, null)); fromViewController.PresentViewController(new ThemedNavigationController(toViewController), true, null); } else if (fromViewController is MenuView) { fromViewController.NavigationController.PushViewController(toViewController, true); } else if (toViewController is LanguagesView && fromViewController is RepositoriesTrendingView) { toViewDismissCommand.Subscribe(_ => fromViewController.DismissViewController(true, null)); toViewController.NavigationItem.LeftBarButtonItem = new UIBarButtonItem(UIBarButtonSystemItem.Done, (s, e) => toViewDismissCommand.ExecuteIfCan()); var ctrlToPresent = new ThemedNavigationController(toViewController); ctrlToPresent.TransitioningDelegate = new SlideDownTransition(); fromViewController.PresentViewController(ctrlToPresent, true, null); } else { toViewDismissCommand.Subscribe(_ => toViewController.NavigationController.PopToViewController(fromViewController, true)); fromViewController.NavigationController.PushViewController(toViewController, true); } }
protected override void HandleNavigation(CodeHub.Core.ViewModels.IBaseViewModel viewModel, UIViewController view) { if (view is LanguagesViewController) { var ctrlToPresent = new ThemedNavigationController(view); ctrlToPresent.TransitioningDelegate = new SlideDownTransition(); PresentViewController(ctrlToPresent, true, null); viewModel.RequestDismiss.Subscribe(_ => DismissViewController(true, null)); } else { base.HandleNavigation(viewModel, view); } }
public static UIViewController PresentUpgradeViewController(this UIViewController @this) { var vc = new UpgradeViewController(); var nav = new ThemedNavigationController(vc); var navObj = new UIBarButtonItem { Image = Images.Buttons.Cancel }; vc.OnActivation(disposble => navObj.GetClickedObservable().Subscribe(_ => @this.DismissViewController(true, null)).AddTo(disposble)); vc.NavigationItem.LeftBarButtonItem = navObj; @this.PresentViewController(nav, true, null); return(vc); }
public static UpgradeViewController Present(UIViewController parent) { var vc = new UpgradeViewController(); var nav = new ThemedNavigationController(vc); var navObj = new UIBarButtonItem( UIBarButtonSystemItem.Cancel, (_, __) => parent.DismissViewController(true, null)); vc.Appearing.Subscribe(_ => vc.NavigationItem.LeftBarButtonItem = navObj); vc.Disappeared.Subscribe(_ => vc.NavigationItem.LeftBarButtonItem = null); parent.PresentViewController(nav, true, null); return(vc); }
private void ShowLanguages() { var vm = new WeakReference <RepositoriesTrendingViewModel>(ViewModel as RepositoriesTrendingViewModel); var view = new LanguagesViewController(); view.SelectedLanguage = vm.Get()?.SelectedLanguage; view.NavigationItem.LeftBarButtonItem = new UIBarButtonItem { Image = Images.Buttons.CancelButton }; view.NavigationItem.LeftBarButtonItem.GetClickedObservable().Subscribe(_ => DismissViewController(true, null)); view.Language.Subscribe(x => { Root.Clear(); vm.Get().With(y => y.SelectedLanguage = x); DismissViewController(true, null); }); var ctrlToPresent = new ThemedNavigationController(view); ctrlToPresent.TransitioningDelegate = new SlideDownTransition(); PresentViewController(ctrlToPresent, true, null); }
protected override void HandleNavigation(CodeHub.Core.ViewModels.IBaseViewModel viewModel, UIViewController view) { // if (view is MenuViewController) // { // var appDelegate = (AppDelegate)UIApplication.SharedApplication.Delegate; // var nav = ((UINavigationController)appDelegate.Window.RootViewController); // var slideout = new SlideoutNavigationController(); // slideout.MenuViewController = new MenuNavigationController(view, slideout); // UIView.Transition(nav.View, 0.3, UIViewAnimationOptions.BeginFromCurrentState | UIViewAnimationOptions.TransitionCrossDissolve, // () => nav.PushViewController(slideout, false), null); // } // else // { // PresentViewController(new ThemedNavigationController(view), true, null); // viewModel.RequestDismiss.Subscribe(_ => DismissViewController(true, null)); // } var nav = new ThemedNavigationController(view); PresentViewController(nav, true, null); // NavigationController.PushViewController(nav, true); }
private void DoTransition(IViewFor fromView, IViewFor toView) { var toViewController = (UIViewController)toView; var toViewModel = (IBaseViewModel)toView.ViewModel; var fromViewController = (UIViewController)fromView; var routableToViewModel = toViewModel as IRoutingViewModel; IReactiveCommand <object> toViewDismissCommand = null; if (toViewController is AccountsView || toViewController is WebBrowserView || toViewController is GistCommentView || toViewController is CommitCommentView || toViewController is GistCreateView || toViewController is FeedbackComposerView) { var appDelegate = (AppDelegate)UIApplication.SharedApplication.Delegate; var rootNav = (UINavigationController)appDelegate.Window.RootViewController; toViewDismissCommand = ReactiveCommand.Create().WithSubscription(_ => rootNav.DismissViewController(true, null)); toViewController.NavigationItem.LeftBarButtonItem = new UIBarButtonItem(Images.Cancel, UIBarButtonItemStyle.Plain, (s, e) => toViewDismissCommand.ExecuteIfCan()); var navController = new ThemedNavigationController(toViewController); rootNav.PresentViewController(navController, true, null); } else if (toViewController is MenuView) { var appDelegate = (AppDelegate)UIApplication.SharedApplication.Delegate; var nav = ((UINavigationController)appDelegate.Window.RootViewController); var slideout = new SlideoutNavigationController(); slideout.MenuViewController = new MenuNavigationController(toViewController, slideout); UIView.Transition(nav.View, 0.1, UIViewAnimationOptions.BeginFromCurrentState | UIViewAnimationOptions.TransitionCrossDissolve, () => nav.PushViewController(slideout, false), null); } else if (toViewController is NewAccountView && fromViewController is StartupView) { toViewDismissCommand = ReactiveCommand.Create().WithSubscription(_ => toViewController.DismissViewController(true, null)); fromViewController.PresentViewController(new ThemedNavigationController(toViewController), true, null); } else if (fromViewController is MenuView) { fromViewController.NavigationController.PushViewController(toViewController, true); } else if (toViewController is LanguagesView && fromViewController is RepositoriesTrendingView) { toViewDismissCommand = ReactiveCommand.Create().WithSubscription(_ => fromViewController.DismissViewController(true, null)); toViewController.NavigationItem.LeftBarButtonItem = new UIBarButtonItem(UIBarButtonSystemItem.Done, (s, e) => toViewDismissCommand.ExecuteIfCan()); var ctrlToPresent = new ThemedNavigationController(toViewController); ctrlToPresent.TransitioningDelegate = new SlideDownTransition(); fromViewController.PresentViewController(ctrlToPresent, true, null); } else if (toViewController is EditFileView || toViewController is CreateFileView) { toViewDismissCommand = ReactiveCommand.Create().WithSubscription(_ => fromViewController.DismissViewController(true, null)); toViewController.NavigationItem.LeftBarButtonItem = new UIBarButtonItem(Images.Cancel, UIBarButtonItemStyle.Plain, (s, e) => toViewDismissCommand.ExecuteIfCan()); fromViewController.PresentViewController(new ThemedNavigationController(toViewController), true, null); } else { toViewDismissCommand = ReactiveCommand.Create().WithSubscription(_ => toViewController.NavigationController.PopToViewController(fromViewController, true)); fromViewController.NavigationController.PushViewController(toViewController, true); } if (toViewDismissCommand != null) { routableToViewModel.RequestDismiss.Subscribe(_ => { this.Log().Info("{0} is requesting dismissal", routableToViewModel.GetType().Name); toViewDismissCommand.ExecuteIfCan(); }); } toViewModel.RequestNavigation.Subscribe(x => { var viewType = _viewModelViewService.GetViewFor(x.GetType()); var view = (IViewFor)_serviceConstructor.Construct(viewType); view.ViewModel = x; Transition(toView, view); }); }