/// <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); }
/// <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); } }
/// <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); }
/// <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); }
/// <summary> /// Disposes the specified view instance. /// </summary> public void OnDispose(IMvcView view) { mvcLifeHandler.DisposeView(view); }
/// <summary> /// Disposes the specified view. /// </summary> public void DisposeView(IMvcView view) { view.OnDisposeView(); recycler.ReturnView(view); }
/// <summary> /// Adds the specified view to the recycling pool. /// </summary> public void ReturnView(IMvcView view) { view.ViewObject.SetActive(false); views.Push(view); }
/// <summary> /// Disposes the specified view. /// </summary> public void DisposeView(IMvcView view) { view.OnDisposeView(); GameObject.Destroy(view.ViewObject); }