예제 #1
1
        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();
                }
            };
        }
예제 #2
0
        private IEnumerable<UIViewController> GetPages()
        {
            yield return new AboutViewController();
            yield return new PromoteView();
            yield return new GoProViewController();
            yield return new FeedbackViewController();

            var welcomeViewController = new WelcomeViewController();
            welcomeViewController.WantsToDimiss += OnWantsToDismiss;
            yield return welcomeViewController;
        }
예제 #3
0
        private IEnumerable<UIViewController> GetPages()
        {
            var appDelegate = UIApplication.SharedApplication.Delegate as AppDelegate;
            var isPro = appDelegate?.IsPro ?? false;

            yield return new AboutViewController();
            yield return new PromoteView();
            if (!isPro)
                yield return new GoProViewController();
            yield return new FeedbackViewController();

            var welcomeViewController = new WelcomeViewController();
            welcomeViewController.WantsToDimiss += OnWantsToDismiss;
            yield return welcomeViewController;
        }
예제 #4
0
        private IEnumerable <UIViewController> GetPages()
        {
            yield return(new AboutViewController());

            yield return(new PromoteView());

            yield return(new GoProViewController());

            yield return(new FeedbackViewController());

            var welcomeViewController = new WelcomeViewController();

            welcomeViewController.WantsToDimiss += OnWantsToDismiss;
            yield return(welcomeViewController);
        }
예제 #5
0
        private IEnumerable <UIViewController> GetPages()
        {
            var appDelegate = UIApplication.SharedApplication.Delegate as AppDelegate;
            var isPro       = appDelegate?.IsPro ?? false;

            yield return(new AboutViewController());

            yield return(new PromoteView());

            if (!isPro)
            {
                yield return(new GoProViewController());
            }
            yield return(new FeedbackViewController());

            var welcomeViewController = new WelcomeViewController();

            welcomeViewController.WantsToDimiss += OnWantsToDismiss;
            yield return(welcomeViewController);
        }