Inheritance: UIViewController, ISubstitutableDetailViewController
            public override void RowSelected(UITableView tableView, NSIndexPath indexPath)
            {
                int row = indexPath.Row;
                ISubstitutableDetailViewController detailViewController = null;

                if (row == 0)
                {
                    FirstDetailView newDetailViewController = new FirstDetailView();
                    detailViewController = newDetailViewController;
                }

                if (row == 1)
                {
                    SecondDetailView newDetailViewController = new SecondDetailView();
                    detailViewController = newDetailViewController;
                }

                var existingVC = _rootViewController.SplitViewController.ViewControllers[1] as ISubstitutableDetailViewController;

                detailViewController.RootPopoverButtonItem = existingVC.RootPopoverButtonItem;
                detailViewController.PopOverController     = existingVC.PopOverController;


                // Update the split view controller's view controllers array.
                var viewControllers = new UIViewController[] {
                    _rootViewController.NavigationController,
                    detailViewController as UIViewController
                };

                _rootViewController.SplitViewController.ViewControllers = viewControllers;


                UINavigationController parentViewController = _rootViewController.ParentViewController as UINavigationController;

                if (detailViewController.RootPopoverButtonItem != null)
                {
                    detailViewController.ShowRootPopoverButtonItem(detailViewController.RootPopoverButtonItem);
                }
                if (detailViewController.PopOverController != null)
                {
                    detailViewController.PopOverController.Dismiss(true);
                }
            }
            public override void RowSelected(UITableView tableView, NSIndexPath indexPath)
            {
                int row = indexPath.Row;
                ISubstitutableDetailViewController detailViewController = null;

                if (row == 0)
                {
                  FirstDetailView newDetailViewController = new FirstDetailView();
                  detailViewController = newDetailViewController;
                }

                if (row == 1)
                {
                  SecondDetailView newDetailViewController = new SecondDetailView();
                  detailViewController = newDetailViewController;
                }

                var existingVC = _rootViewController.SplitViewController.ViewControllers[1] as ISubstitutableDetailViewController;
                detailViewController.RootPopoverButtonItem = existingVC.RootPopoverButtonItem;
                detailViewController.PopOverController = existingVC.PopOverController;

                // Update the split view controller's view controllers array.
                var viewControllers = new UIViewController[] {
                _rootViewController.NavigationController,
                detailViewController as UIViewController
                  };
                _rootViewController.SplitViewController.ViewControllers = viewControllers;

                UINavigationController parentViewController = _rootViewController.ParentViewController as UINavigationController;
                if (detailViewController.RootPopoverButtonItem != null)
                {
                  detailViewController.ShowRootPopoverButtonItem( detailViewController.RootPopoverButtonItem);
                }
                if (detailViewController.PopOverController != null)
                {
                  detailViewController.PopOverController.Dismiss(true);
                }
            }