public virtual IEnumerator LoadMainView(string sceneName)
        {
            // Unload current main view if existing.
            if (this.MainView != null)
            {
                this.MainView.OnUnload();
            }

            // Load new main view.
            UnityEngine.AsyncOperation async = UnityEngine.SceneManagement.SceneManager.LoadSceneAsync(sceneName, UnityEngine.SceneManagement.LoadSceneMode.Additive);
            yield return async;
            this.MainView = UnityEngine.GameObject.Find(sceneName).transform.GetComponent<View>();

            if (this.MainView == null)
            {
                UnityEngine.Debug.LogError("The scene " + sceneName + " has encountered an error while loading. Check the name of the main container.");
                yield break;
            }

            this.MainView.transform.parent = this.transform;
            yield return this.MainView.StartCoroutine(this.MainView.OnLoad());

            if (this.OnLoadView != null)
            {
                this.OnLoadView(this, new EventArgsOnLoadView(this.MainView));
            }

            yield break;
        }
 public EventArgsOnLoadView(View view)
 {
     this.View = view;
 }