VLCFirstStepsViewController.m 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  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. @interface VLCFirstStepsViewController () <UIPageViewControllerDataSource, UIPageViewControllerDelegate>
  20. {
  21. UIPageViewController *pageVC;
  22. }
  23. @end
  24. @implementation VLCFirstStepsViewController
  25. - (void)viewDidLoad
  26. {
  27. [super viewDidLoad];
  28. pageVC = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];
  29. pageVC.dataSource = self;
  30. pageVC.delegate = self;
  31. [[pageVC view] setFrame:[[self view] bounds]];
  32. [pageVC setViewControllers:@[[[VLCFirstStepsFirstPageViewController alloc] initWithNibName:nil bundle:nil]] direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:nil];
  33. UIBarButtonItem *dismissButton = [UIBarButtonItem themedDarkToolbarButtonWithTitle:NSLocalizedString(@"BUTTON_DONE", nil) target:self andSelector:@selector(dismissFirstSteps)];
  34. self.navigationItem.rightBarButtonItem = dismissButton;
  35. self.title = NSLocalizedString(@"FIRST_STEPS_WELCOME", nil);
  36. self.view.backgroundColor = [UIColor blackColor];
  37. [self addChildViewController:pageVC];
  38. [self.view addSubview:[pageVC view]];
  39. [pageVC didMoveToParentViewController:self];
  40. }
  41. - (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
  42. {
  43. UIViewController *returnedVC;
  44. NSUInteger currentPage = 0;
  45. if ([viewController respondsToSelector:@selector(page)])
  46. currentPage = (NSUInteger)[viewController performSelector:@selector(page) withObject:nil];
  47. switch (currentPage) {
  48. case 1:
  49. returnedVC = [[VLCFirstStepsSecondPageViewController alloc] initWithNibName:nil bundle:nil];
  50. break;
  51. case 2:
  52. returnedVC = [[VLCFirstStepsThirdPageViewController alloc] initWithNibName:nil bundle:nil];
  53. break;
  54. case 3:
  55. returnedVC = [[VLCFirstStepsFourthPageViewController alloc] initWithNibName:nil bundle:nil];
  56. break;
  57. case 4:
  58. returnedVC = [[VLCFirstStepsFifthPageViewController alloc] initWithNibName:nil bundle:nil];
  59. break;
  60. case 5:
  61. returnedVC = [[VLCFirstStepsSixthPageViewController alloc] initWithNibName:nil bundle:nil];
  62. break;
  63. default:
  64. nil;
  65. }
  66. return returnedVC;
  67. }
  68. - (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
  69. {
  70. UIViewController *returnedVC;
  71. NSUInteger currentPage = 0;
  72. if ([viewController respondsToSelector:@selector(page)])
  73. currentPage = (NSUInteger)[viewController performSelector:@selector(page) withObject:nil];
  74. switch (currentPage) {
  75. case 2:
  76. returnedVC = [[VLCFirstStepsFirstPageViewController alloc] initWithNibName:nil bundle:nil];
  77. break;
  78. case 3:
  79. returnedVC = [[VLCFirstStepsSecondPageViewController alloc] initWithNibName:nil bundle:nil];
  80. break;
  81. case 4:
  82. returnedVC = [[VLCFirstStepsThirdPageViewController alloc] initWithNibName:nil bundle:nil];
  83. break;
  84. case 5:
  85. returnedVC = [[VLCFirstStepsFourthPageViewController alloc] initWithNibName:nil bundle:nil];
  86. break;
  87. case 6:
  88. returnedVC = [[VLCFirstStepsFifthPageViewController alloc] initWithNibName:nil bundle:nil];
  89. break;
  90. default:
  91. nil;
  92. }
  93. return returnedVC;
  94. }
  95. - (NSInteger)presentationCountForPageViewController:(UIPageViewController *)pageViewController
  96. {
  97. return 6;
  98. }
  99. - (NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pageViewController
  100. {
  101. return 0;
  102. }
  103. - (void)dismissFirstSteps
  104. {
  105. [self.navigationController dismissViewControllerAnimated:YES completion:nil];
  106. }
  107. - (void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed
  108. {
  109. self.title = [[pageViewController viewControllers][0] pageTitle];
  110. }
  111. @end