GetViewNavigationContext() public static method

public static GetViewNavigationContext ( object view ) : ViewNavigationContext
view object
return ViewNavigationContext
        public void LoadViewForController(IMXView fromView, IMXController controller, MXViewPerspective viewPerspective)
        {
            HideLoading();

            if (controller.View == null)
            {
                // get the view, create it if it has yet been created
                controller.View = Views.GetOrCreateView(viewPerspective);
                if (controller.View == null)
                {
                    Console.WriteLine("View not found for perspective!" + viewPerspective.ToString());
                    throw new ArgumentException("View creation failed for perspective!" + viewPerspective.ToString());
                }
            }


            // asign the view it's model and render the contents of the view
            controller.View.SetModel(controller.GetModel());
            controller.View.Render();

            // pull the type from the view
            ViewNavigationContext navigationContext = MXTouchNavigation.GetViewNavigationContext(controller.View);
            UIViewController      viewController    = controller.View as UIViewController;

            // iFactr binding options
            if (viewController == null)
            {
                viewController = RenderLayer(controller.View);
            }


            if (Menu.NavigationController != null && fromView != null)
            {
                if (Menu.NavigationController.ViewControllers.Contains(viewController))
                {
                    Menu.NavigationController.PopToViewController(viewController, true);
                }
                else
                {
                    Menu.NavigationController.PushViewController(viewController, true);
                }
            }
            else
            {
                if (Menu.NavigationController != null)
                {
                    Menu.NavigationController.PopToRootViewController(true);
                }

                Menu.TopView = viewController;
            }

            ShowView();
        }
Beispiel #2
0
        /*
         * public static IMXController NavigateFromButton(string url, Dictionary<string, string> parameters, UIBarButtonItem button)
         * {
         *      //_stashButton = button;
         *
         *      return Navigate(url, parameters);
         * }
         */

        void LoadViewForController(IMXView fromView, IMXController controller, MXViewPerspective viewPerspective)
        {
            HideLoading();

            if (controller.View == null)
            {
                // get the view, create it if it has yet been created
                controller.View = Views.GetOrCreateView(viewPerspective);
                if (controller.View == null)
                {
                    Console.WriteLine("View not found for perspective!" + viewPerspective.ToString());
                    throw new ArgumentException("View creation failed for perspective!" + viewPerspective.ToString());
                }
            }

            // asign the view it's model and render the contents of the view
            controller.View.SetModel(controller.GetModel());
            controller.View.Render();

            // pull the type from the view
            ViewNavigationContext navigationContext = MXTouchNavigation.GetViewNavigationContext(controller.View);
            UIViewController      viewController    = controller.View as UIViewController;

            if (navigationContext == ViewNavigationContext.Modal)
            {
                // treat as a modal/popup view
                _touchNavigation.PushToModel(viewController);
            }
            else if (navigationContext == ViewNavigationContext.InContext)
            {
                // it's just an in-context view, just slap it on top of the view that navigated it here!
                UIViewController parentViewController = fromView as UIViewController;
                parentViewController.NavigationController.PushViewController(viewController, true);
            }
            else
            {
                // if the view is one of the views in the group
                MXTouchViewGroup     viewGroup     = null;
                MXTouchViewGroupItem viewGroupItem = null;

                foreach (MXTouchViewGroup vg in ViewGroups)
                {
                    viewGroupItem = vg.Items.Find(item => item.ViewType == controller.View.GetType());
                    if (viewGroupItem != null)
                    {
                        viewGroup = vg;
                        break;
                    }
                }

                if (viewGroup != null)
                {
                    // activate the group!
                    _touchNavigation.PushToViewGroup(viewGroup, viewGroupItem, controller.View as UIViewController);
                }
                else
                {
                    switch (navigationContext)
                    {
                    case ViewNavigationContext.Detail:
                        _touchNavigation.PushToDetail(viewController);
                        break;

                    case ViewNavigationContext.Master:
                        _touchNavigation.PushToMaster(viewController);
                        break;
                    }
                }
            }

            // handle initial view display if not already handled
            ShowView();
        }