VLCFirstStepsViewController.m 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. /*****************************************************************************
  2. * VLCFirstStepsViewController.m
  3. * VLC for iOS
  4. *****************************************************************************
  5. * Copyright (c) 2013 VideoLAN. All rights reserved.
  6. * $Id$
  7. *
  8. * Authors: Felix Paul Kühne <fkuehne # videolan.org>
  9. *
  10. * Refer to the COPYING file of the official project for license.
  11. *****************************************************************************/
  12. #import "VLCFirstStepsViewController.h"
  13. #import "VLCFirstStepsFirstPageViewController.h"
  14. #import "VLCFirstStepsSecondPageViewController.h"
  15. #import "VLCFirstStepsThirdPageViewController.h"
  16. #import "VLCFirstStepsFourthPageViewController.h"
  17. #import "VLCFirstStepsFifthPageViewController.h"
  18. #import "VLCFirstStepsSixthPageViewController.h"
  19. #import "UIBarButtonItem+Theme.h"
  20. @interface VLCFirstStepsViewController () <UIPageViewControllerDataSource, UIPageViewControllerDelegate>
  21. {
  22. UIPageViewController *pageVC;
  23. }
  24. @end
  25. @implementation VLCFirstStepsViewController
  26. - (void)viewDidLoad
  27. {
  28. [super viewDidLoad];
  29. pageVC = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];
  30. pageVC.dataSource = self;
  31. pageVC.delegate = self;
  32. [[pageVC view] setFrame:[[self view] bounds]];
  33. [pageVC setViewControllers:@[[[VLCFirstStepsFirstPageViewController alloc] initWithNibName:nil bundle:nil]] direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:nil];
  34. UIBarButtonItem *dismissButton = [UIBarButtonItem themedDoneButtonWithTarget:self andSelector:@selector(dismissFirstSteps)];
  35. self.navigationItem.rightBarButtonItem = dismissButton;
  36. self.title = NSLocalizedString(@"FIRST_STEPS_WELCOME", @"");
  37. self.view.backgroundColor = [UIColor blackColor];
  38. [self addChildViewController:pageVC];
  39. [self.view addSubview:[pageVC view]];
  40. [pageVC didMoveToParentViewController:self];
  41. }
  42. - (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
  43. {
  44. UIViewController *returnedVC;
  45. NSUInteger currentPage = 0;
  46. if ([viewController respondsToSelector:@selector(page)])
  47. currentPage = (NSUInteger)[viewController performSelector:@selector(page) withObject:nil];
  48. switch (currentPage) {
  49. case 1:
  50. returnedVC = [[VLCFirstStepsSecondPageViewController alloc] initWithNibName:nil bundle:nil];
  51. break;
  52. case 2:
  53. returnedVC = [[VLCFirstStepsThirdPageViewController alloc] initWithNibName:nil bundle:nil];
  54. break;
  55. case 3:
  56. returnedVC = [[VLCFirstStepsFourthPageViewController alloc] initWithNibName:nil bundle:nil];
  57. break;
  58. case 4:
  59. returnedVC = [[VLCFirstStepsFifthPageViewController alloc] initWithNibName:nil bundle:nil];
  60. break;
  61. case 5:
  62. returnedVC = [[VLCFirstStepsSixthPageViewController alloc] initWithNibName:nil bundle:nil];
  63. break;
  64. default:
  65. nil;
  66. }
  67. return returnedVC;
  68. }
  69. - (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
  70. {
  71. UIViewController *returnedVC;
  72. NSUInteger currentPage = 0;
  73. if ([viewController respondsToSelector:@selector(page)])
  74. currentPage = (NSUInteger)[viewController performSelector:@selector(page) withObject:nil];
  75. switch (currentPage) {
  76. case 2:
  77. returnedVC = [[VLCFirstStepsFirstPageViewController alloc] initWithNibName:nil bundle:nil];
  78. break;
  79. case 3:
  80. returnedVC = [[VLCFirstStepsSecondPageViewController alloc] initWithNibName:nil bundle:nil];
  81. break;
  82. case 4:
  83. returnedVC = [[VLCFirstStepsThirdPageViewController alloc] initWithNibName:nil bundle:nil];
  84. break;
  85. case 5:
  86. returnedVC = [[VLCFirstStepsFourthPageViewController alloc] initWithNibName:nil bundle:nil];
  87. break;
  88. case 6:
  89. returnedVC = [[VLCFirstStepsFifthPageViewController alloc] initWithNibName:nil bundle:nil];
  90. break;
  91. default:
  92. nil;
  93. }
  94. return returnedVC;
  95. }
  96. - (NSInteger)presentationCountForPageViewController:(UIPageViewController *)pageViewController
  97. {
  98. return 6;
  99. }
  100. - (NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pageViewController
  101. {
  102. return 0;
  103. }
  104. - (void)dismissFirstSteps
  105. {
  106. [self.navigationController dismissViewControllerAnimated:YES completion:nil];
  107. }
  108. - (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed
  109. {
  110. self.title = [[pageViewController viewControllers][0] pageTitle];
  111. }
  112. @end