示例#1
0
        /// <summary>
        /// Hides the specified view and returns its data.
        /// </summary>
        public static MvcParameter HideView(IMvcView view)
        {
            MvcParameter returnData = view.OnViewHide();

            DoCallback(view.ViewId, returnData);
            return(returnData);
        }
示例#2
0
 /// <summary>
 /// Registers a callback event to invoke when the target view is destroyed.
 /// </summary>
 public static void RegisterCallback(IMvcView targetView, UICallbackHandler callback)
 {
     if (I.uiCallbacks.ContainsKey(targetView.ViewId))
     {
         I.uiCallbacks[targetView.ViewId] = callback;
     }
     else
     {
         I.uiCallbacks.Add(targetView.ViewId, callback);
     }
 }
示例#3
0
        /// <summary>
        /// Disposes the view.
        /// </summary>
        public static void DisposeView(IMvcView view)
        {
            Type viewType = view.GetType();

            // Unregistered type is an invalid request.
            if (!I.uiMetadatas.ContainsKey(viewType))
            {
                Debug.LogWarning("MVC.DisposeView - No MVC metadata found for specified type: " + viewType.FullName);
                return;
            }

            I.uiMetadatas[viewType].OnDispose(view);
            I.activeViews.Remove(view);
        }
示例#4
0
        /// <summary>
        /// Returns a new MVC view.
        /// </summary>
        public IMvcView NewView(int viewId, MvcRescaleType viewRescaleMode, MvcParameter param)
        {
            IMvcView view = null;

            // If a new view should be created
            if (recycler.Count == 0)
            {
                view = recycler.GetView();
                view.OnAdaptView(MVC.ViewSize, viewRescaleMode);
                view.OnInitialize(viewId, param);
                view.OnViewShow();
            }
            // Else, we have a recyclable view.
            else
            {
                view = recycler.GetView();
                view.ViewObject.SetActive(true);
                view.OnRecycle(viewId, param);
                view.OnViewShow();
            }

            return(view);
        }
示例#5
0
 /// <summary>
 /// Disposes the specified view instance.
 /// </summary>
 public void OnDispose(IMvcView view)
 {
     mvcLifeHandler.DisposeView(view);
 }
示例#6
0
 /// <summary>
 /// Disposes the specified view.
 /// </summary>
 public void DisposeView(IMvcView view)
 {
     view.OnDisposeView();
     recycler.ReturnView(view);
 }
示例#7
0
 /// <summary>
 /// Adds the specified view to the recycling pool.
 /// </summary>
 public void ReturnView(IMvcView view)
 {
     view.ViewObject.SetActive(false);
     views.Push(view);
 }
示例#8
0
 /// <summary>
 /// Disposes the specified view.
 /// </summary>
 public void DisposeView(IMvcView view)
 {
     view.OnDisposeView();
     GameObject.Destroy(view.ViewObject);
 }