public override void ViewDidLoad() { base.ViewDidLoad(); View.BackgroundColor = Theme.PrimaryNavigationBarColor; var welcomeViewController = new WelcomeViewController(); welcomeViewController.WantsToDimiss += OnWantsToDismiss; var pages = new UIViewController[] { new CardPageViewController(new AboutViewController()), new CardPageViewController(new PromoteView()), new CardPageViewController(new GoProViewController()), new CardPageViewController(new FeedbackViewController()), new CardPageViewController(welcomeViewController), }; var welcomePageViewController = new UIPageViewController(UIPageViewControllerTransitionStyle.Scroll, UIPageViewControllerNavigationOrientation.Horizontal); welcomePageViewController.DataSource = new PageDataSource(pages); welcomePageViewController.SetViewControllers(new [] { pages[0] }, UIPageViewControllerNavigationDirection.Forward, true, null); welcomePageViewController.View.Frame = new CoreGraphics.CGRect(0, 0, View.Frame.Width, View.Frame.Height); welcomePageViewController.View.AutoresizingMask = UIViewAutoresizing.All; AddChildViewController(welcomePageViewController); Add(welcomePageViewController.View); var nextButton = new UIButton(UIButtonType.Custom); nextButton.SetTitle("Next", UIControlState.Normal); nextButton.TintColor = UIColor.White; nextButton.TitleLabel.Font = UIFont.SystemFontOfSize(14f); nextButton.Frame = new CoreGraphics.CGRect(View.Frame.Width - 50f, View.Frame.Height - 28f, 40f, 20f); nextButton.AutoresizingMask = UIViewAutoresizing.FlexibleLeftMargin | UIViewAutoresizing.FlexibleTopMargin; Add(nextButton); var transitionAction = new Action<UIViewController>(e => { var isLast = pages.Last() == e; //nextButton.Enabled = !isLast; UIView.Transition(nextButton, 0.25f, UIViewAnimationOptions.TransitionCrossDissolve, () => nextButton.SetTitle(isLast ? "Done" : "Next", UIControlState.Normal), null); }); welcomePageViewController.WillTransition += (sender, e) => transitionAction(e.PendingViewControllers[0]); nextButton.TouchUpInside += (sender, e) => { var currentViewController = welcomePageViewController.ViewControllers[0]; var nextViewController = welcomePageViewController.DataSource.GetNextViewController(welcomePageViewController, currentViewController); if (nextViewController != null) { transitionAction(nextViewController); welcomePageViewController.SetViewControllers(new [] { nextViewController }, UIPageViewControllerNavigationDirection.Forward, true, null); } else { OnWantsToDismiss(); } }; }