public override void ViewDidLoad ()
		{
			base.ViewDidLoad ();
			this.NavigationController.NavigationBar.Hidden = true;
			loginViewModel = new LoginViewModel();

			this.submit.TouchUpInside += (sender, e) => 
			{
				dialog = new UILoadingView("Carregando","Por favor aguarde");
				dialog.Show();
				loginViewModel.submitLoginData(login.Text,password.Text);
			};

			ServiceLocator.Messenger.Subscribe<BaseViewMessage>(m => 
			{
				switch (m.Content.message) 
				{
				case BaseViewMessage.MessageTypes.CONNECTION_ERROR:
					ServiceLocator.Dispatcher.invoke(() =>
					{
						if (dialog != null) 
						{
							dialog.DismissWithClickedButtonIndex(0,true);
						}
						new UIAlertView("Erro","Nao foi possivel se conectar com o servidor",null,"Fechar",null).Show();
					});
					break;
				case BaseViewMessage.MessageTypes.LOGIN_CONNECTION_OK:
					getCourses();
					break;
				case BaseViewMessage.MessageTypes.COURSE_CONNECTION_OK:
					ServiceLocator.Dispatcher.invoke(() =>
					{
						coursesPage = new CoursesViewController();
						this.NavigationController.PushViewController(this.coursesPage,true);
					});
					break;
				default:
					break;
				}            
			});
		}
    public void Awake()
    {
        GameObject canvas = GameObject.Find("Canvas");

        uiLoadingView = canvas.transform.Find("UILoadingView").GetComponent <UILoadingView>();
    }
			public override void RowSelected (UITableView tableView, NSIndexPath indexPath)
			{
				tableView.DeselectRow(indexPath, true);
				classViewController = new ClassesViewController();

				if (coursesViewModel.existClasses(indexPath.Row)) 
				{
					navController.PushViewController(classViewController,true);
				} 
				else 
				{
					dialog = new UILoadingView("Carregando","Por favor aguarde");
					dialog.Show();
					coursesViewModel.requestClass();
				}
			}