/// <summary> /// Creates a ViewModel of the desired type (as well as the ppropriate View) and inserts it into /// the correct Panel Container and inserts the panel container into the provided sliding panel /// view controller /// </summary> /// <param name="panelType">Panel type.</param> /// <param name="navigationViewController"></param> /// <param name="viewToAdd">Mvx controller.</param> protected void AddPanel(PanelType panelType, SlidingPanelsNavigationViewController navigationViewController, UIViewController viewToAdd) { // use the first view to create a view of the desired type // We only do this because there's no convenient way to create a view from inside the presenter // Insert the view into a new container (of the right type) and insert // that into the sliding panels controller switch (panelType) { case PanelType.LeftPanel: navigationViewController.InsertPanel(new LeftPanelContainer(viewToAdd)); break; case PanelType.RightPanel: navigationViewController.InsertPanel(new RightPanelContainer(viewToAdd)); break; case PanelType.BottomPanel: navigationViewController.InsertPanel(new BottomPanelContainer(viewToAdd)); break; default: throw new ArgumentException("PanelType is invalid"); } }
/// <summary> /// Overrides the default presenters method so that we can instead create a sliding panel /// view controller and use that as our application navigation view controller /// </summary> /// <returns>The navigation controller.</returns> /// <param name="viewController">View controller.</param> protected override UINavigationController CreateNavigationController(UIViewController viewController) { SlidingPanelsNavigationViewController navController = new SlidingPanelsNavigationViewController(viewController); RootController = new UIViewController(); return(navController); }
protected override UINavigationController CreateNavigationController(UIViewController viewController) { var navController = new SlidingPanelsNavigationViewController(viewController); navController.CanSwipeToShowPanel = _ => !navController.TopViewController.HasAttribute <DisableMenuGestureAttribute>(); navController.View.Layer.ShadowRadius = 0; _rootViewController = new UIViewController(); return(navController); }
public override void ViewDidLoad() { base.ViewDidLoad(); SlidingPanelsNavigationViewController navController = NavigationController as SlidingPanelsNavigationViewController; // Perform any additional setup after loading the view, typically from a nib. LeftArrowImage.Image = UIImage.FromBundle("Images/LeftArrow.png"); UpArrowImage.Image = UIImage.FromBundle("Images/UpArrow.png"); RightArrowImage.Image = UIImage.FromBundle("Images/RightArrow.png"); NavigationController.NavigationBar.TintColor = UIColor.Black; }
private UIBarButtonItem CreateSliderButton(string imageName, PanelType panelType) { UIButton button = new UIButton(new RectangleF(0, 0, 40f, 40f)); button.SetBackgroundImage(UIImage.FromBundle(imageName), UIControlState.Normal); button.TouchUpInside += delegate { SlidingPanelsNavigationViewController navController = NavigationController as SlidingPanelsNavigationViewController; navController.TogglePanel(panelType); }; return(new UIBarButtonItem(button)); }
protected override void ShowFirstView(UIViewController viewController) { base.ShowFirstView(viewController); _slidingPanelsController = (SlidingPanelsNavigationViewController)MasterNavigationController; _rootViewController.AddChildViewController(_slidingPanelsController); _rootViewController.View.AddSubview(_slidingPanelsController.View); var menuRequest = new MvxViewModelRequest <MenuViewModel>(new MvxBundle(null), null, MvxRequestedBy.UserAction); var menuView = (UIViewController)ViewCreator.CreateView(menuRequest); _menuPanelContainer = new LeftPanelContainer(menuView) { EdgeTolerance = 100f }; _slidingPanelsController.InsertPanel(_menuPanelContainer); }
// // This method is invoked when the application has loaded and is ready to run. In this // method you should instantiate the window, load the UI into it and then make the window // visible. // // You have 17 seconds to return from this method, or iOS will terminate your application. // public override bool FinishedLaunching(UIApplication app, NSDictionary options) { window = new UIWindow(UIScreen.MainScreen.Bounds); SlidingPanelsNavigationViewController navController = new SlidingPanelsNavigationViewController(new ExampleContentA()); UIViewController rootController = new UIViewController(); rootController.AddChildViewController(navController); rootController.View.AddSubview(navController.View); window.RootViewController = rootController; window.MakeKeyAndVisible(); navController.InsertPanel(new LeftPanelContainer(new LeftPanelViewController(navController))); navController.InsertPanel(new RightPanelContainer(new RightPanelViewController(navController))); navController.InsertPanel(new BottomPanelContainer(new BottomPanelViewController(navController))); return(true); }
public RightPanelViewController(SlidingPanelsNavigationViewController controller) : base("RightPanelViewController", null) { PanelsNavController = controller; }
public BottomPanelViewController(SlidingPanelsNavigationViewController controller) : base("BottomPanelViewController", null) { PanelsNavController = controller; }