Exemplo n.º 1
0
    private IEnumerator LoadView(ViewType viewType, object dataObject = null, Action onComplete = null)
    {
        _isWaitingForLoading = true;

        UIViewBase topViewOnStack = GetViewOnTopOfStack();

        if (topViewOnStack != null)
        {
            topViewOnStack.HideView();
            yield return(new WaitUntil(() => topViewOnStack.IsDisabled));
        }

        var viewObject = Instantiate(ViewsObjectsList.First(view => view.Type == viewType).ViewObject);
        var viewToOpen = viewObject.GetComponent <UIViewBase>();

        viewToOpen.SetupView(dataObject);
        _viewsStack.Add(viewToOpen);
        yield return(new WaitUntil(() => viewToOpen.IsViewLoaded));

        onComplete?.Invoke();

        _isWaitingForLoading = false;
    }