public override void ViewDidLoad()
        {
            base.ViewDidLoad ();
            if(AppModel!=null){
                loadingOverlay = new LoadingOverlay (UIScreen.MainScreen.Bounds);
                View.Add (loadingOverlay);

                dataSource = new ProviderTableSource(){ ProviderList = new MedicalProvider[0] };
                dataSource.ProviderSelected+=(mp)=>{
                    AppModel.SelectedProvider=mp;
                    var actionSheet = new UIActionSheet (mp.LastName);
                    actionSheet.AddButton ("Cancel");
                    actionSheet.AddButton ("Add Favorites");
                    actionSheet.AddButton ("Call");
                    actionSheet.AddButton ("Directions");
                    actionSheet.CancelButtonIndex = 0;
                    actionSheet.Clicked += delegate(object a, UIButtonEventArgs b) {
                        switch (b.ButtonIndex) {
                        case 0:
                            break;
                        case 1:
                            AppModel.AddFavorite(mp);
                            break;
                        case 2:
                            UIApplication.SharedApplication.OpenUrl(new NSUrl("tel:" + mp.PhoneNumber));
                            break;
                        case 3:
                            var directions = (DirectionsController)this.Storyboard.InstantiateViewController("Directions");
                            directions.AppModel=this.AppModel;
                            this.PresentViewController(directions,true,null);
                            break;
                        }
                    };
                    actionSheet.ShowInView (View);
                };
                this.MedProviderTable.Source= dataSource;
                AppModel.ProviderSearchCompleted+=(e,a)=>{
                    this.BeginInvokeOnMainThread(delegate {
                        dataSource.ProviderList = AppModel.ProviderResults.ToArray();
                        this.MedProviderTable.ReloadData();
                        loadingOverlay.Hide ();
                    });
                };
                AppModel.SelectedProvider=null;
                AppModel.SearchForProviders();
            }
        }
        public override void ViewDidLoad()
        {
            base.ViewDidLoad ();
            loadingOverlay = new LoadingOverlay (UIScreen.MainScreen.Bounds);
            View.Add (loadingOverlay);
            appModel.PropertyChanged+=(s,a)=>{
                if(a.PropertyName=="HasLoadedResources"){
                    this.BeginInvokeOnMainThread(delegate {
                        loadingOverlay.Hide();
                        foreach(AppModelInterface item in this.ViewControllers){
                            item.AppModel=appModel;
                        }
                    });
                }
            };
            appModel.FavoritesUpdated+=(s,e)=>{
                this.TabBar.Items[2].BadgeValue= appModel.Favorites.Count.ToString();
            };

            //put something here for a spinner
            appModel.InitResources();
        }
        public override void ViewDidLoad()
        {
            base.ViewDidLoad ();
            if (AppModel != null && AppModel.SelectedProvider != null) {

                loadingOverlay = new LoadingOverlay (UIScreen.MainScreen.Bounds);
                View.Add (loadingOverlay);
                AppModel.CoordinatedUpdated += (e,a) => {
                    this.BeginInvokeOnMainThread(delegate {
                        loadingOverlay.Hide ();
                        CLLocationCoordinate2D coords = new CLLocationCoordinate2D(AppModel.ProviderLocation.Latitude, AppModel.ProviderLocation.Longtitude);
                        MKCoordinateSpan span = new MKCoordinateSpan(MilesToLatitudeDegrees(5), MilesToLongitudeDegrees(5, coords.Latitude));
                        map.Region = new MKCoordinateRegion(coords, span);
                        var prompt = string.Format("Dr {0} {1}", AppModel.SelectedProvider.FirstName,AppModel.SelectedProvider.LastName);
                        var annotation = new ProviderAnnotation (coords, prompt);
                        map.AddAnnotation(annotation);

                    });
                };

                AppModel.GetProviderLocation ();

            }
        }