public override void ViewDidLoad()
        {
            PullToRefresh = false;

            base.ViewDidLoad();

            TableSource = new SharingTableViewSource();
            ((SharingTableViewSource)TableSource).ShowsAccessory = Shared.SelectedCard.IsMine();
            TableSource.ItemSelected += (arg1, arg2) =>
            {
                if (Shared.SelectedCard.IsMine())
                {
                    var footer = ChildViewControllers.Where(c => c.GetType() == typeof(CardSharingStatusViewController)).FirstOrDefault() as CardSharingStatusViewController;
                    if (footer == null)
                    {
                        return;
                    }
                    if (footer.Sharing)
                    {
                        return;
                    }

                    Shared.OutletSelected(arg2);
                    TableView.ReloadRows(new NSIndexPath[] { arg1 }, UITableViewRowAnimation.Automatic);

                    HeaderView.Update(false);

                    footer.Update();
                    return;
                }

                ApplicationExtensions.OpenApplicationFromOutlet(arg2);
            };
            TableView.Source = TableSource;

            HeaderView = new CardViewController();
            HeaderView.SelectedCard   = Shared.SelectedCard;
            HeaderView.View.Frame     = new CGRect(0, 0, TableView.Frame.Width, CardViewController.GetCalculatedHeight());
            TableView.TableHeaderView = HeaderView.View;
            AddChildViewController(HeaderView);
            HeaderView.DidMoveToParentViewController(this);

            if (Shared.SelectedCard.IsMine())
            {
                CardSharingStatusViewController footerView = new CardSharingStatusViewController();
                footerView.SelectedCard   = Shared.SelectedCard;
                footerView.View.Frame     = new CGRect(0, 0, TableView.Frame.Width, footerView.GetHeight());
                TableView.TableFooterView = footerView.View;
                AddChildViewController(footerView);
            }
        }
        public override void ViewDidLoad()
        {
            PullToRefresh = false;

            base.ViewDidLoad();

            TableSource = new NewCardTableViewSource();
            TableSource.ItemSelected += (NSIndexPath arg1, NewCardModel arg2) =>
            {
                if (arg2 == null || String.IsNullOrEmpty(arg2.Title))
                {
                    return;
                }

                var vc = new ColorPickerViewController();
                vc.ModalPresentationStyle = UIModalPresentationStyle.OverFullScreen;
                vc.ModalTransitionStyle   = UIModalTransitionStyle.CrossDissolve;
                vc.LabelTitle             = arg2.Title;
                vc.StartingColor          = ColorUtils.FromHexString(arg2.ColorHexString, UIColor.White);
                vc.ColorPicked           += (UIColor obj) =>
                {
                    if (obj == null && String.IsNullOrEmpty(arg2.Title))
                    {
                        return;
                    }

                    arg2.ColorHexString = ColorUtils.HexStringFromColor(obj);

                    if (arg2.Title.Equals(NewCardShared.new_card_model_border_color, StringComparison.InvariantCultureIgnoreCase))
                    {
                        Shared.SelectedCard.UpdateStringProperty(() => Shared.SelectedCard.BorderColor, arg2.ColorHexString);
                        Shared.SelectedCard.ShowFront();
                    }

                    else if (arg2.Title.Equals(NewCardShared.new_card_model_background_color, StringComparison.InvariantCultureIgnoreCase))
                    {
                        Shared.SelectedCard.UpdateStringProperty(() => Shared.SelectedCard.BackgroundColor, arg2.ColorHexString);
                        Shared.SelectedCard.ShowBack();
                    }

                    else if (arg2.Title.Equals(NewCardShared.new_card_model_company_name_text_color, StringComparison.InvariantCultureIgnoreCase))
                    {
                        Shared.SelectedCard.UpdateStringProperty(() => Shared.SelectedCard.CompanyNameTextColor, arg2.ColorHexString);
                        Shared.SelectedCard.ShowBack();
                    }


                    HeaderView.Update(false);
                    TableView.ReloadRows(new NSIndexPath[] { arg1 }, UITableViewRowAnimation.Automatic);
                };

                var flyingObjectsContainerViewController = new FlyingObjectsContainterViewController();
                var clearNavigationController            = flyingObjectsContainerViewController.ContainerNavigationController;
                clearNavigationController.SetViewControllers(new UIViewController[] { vc }, false);
                PresentViewController(flyingObjectsContainerViewController, false, null);
            };
            TableSource.RowDeleted += (NSIndexPath arg1, NewCardModel arg2) =>
            {
                if (arg2.Outlet == null)
                {
                    return;
                }

                Shared.SelectedCard.RemoveOutlet(arg2.Outlet);
                TableSource.TableItems.Remove(arg2);
                HeaderView.Update(false);
            };
            TableView.Source = TableSource;

            HeaderView.Editable     = true;
            HeaderView.SelectedCard = Shared.SelectedCard;
            HeaderView.View.Frame   = new CGRect(0, 0, TableView.Frame.Width, CardViewController.GetCalculatedHeight());
            AddChildViewController(HeaderView);
            TableView.TableHeaderView = HeaderView.View;


            AddRowViewController FooterView = new AddRowViewController();

            FooterView.LabelAddText = NewCardShared.AddNewOutlet;
            FooterView.Clicked     += (editing) =>
            {
                ShowMyOutletsViewController();
            };
            FooterView.View.Frame     = new CGRect(0, 0, TableView.Frame.Width, FooterView.GetHeight());
            TableView.TableFooterView = FooterView.View;
            AddChildViewController(FooterView);
        }