Shake to Update / Verhalten PageView

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Shake to Update / Verhalten PageView

    Hallo Leute,

    ich muss mal erneut mit meinem Unwissen nerven ;D

    Und zwar hab ich eine UiViewController auf dem eine PageView mit 5 Seiten läuft. Wenn das Gerät geschüttelt wird sollen die 5 Seiten mit neuen Daten geladen werden.

    Laut dem Buch was ich lese (wobei es in dem Bsp eine UIView war, daher vllt?) muss ich die UIViewController als first responder setzen und kann dann das Event abfangen. Jedoch wird der UiViewController nie auf firstresponder gesetzt, die canbecomeFirstResponder habe ich überschrieben.

    Abfrage ob FirstResponder
    BOOL success = [viewController becomeFirstRepsonder];
    if(success) NSLog(@"Toll hat geklappt") else NSLog(@"Oder auch nicht!")

    SO nebenbei - ist bei einer PageView auch ein Pull To Refresh möglich? Die UiRefreshController zielt ja auf TableViews ab oder?

    lG
    Timm

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von hadschii ()

  • habs hinbekommen. Nur erklären kann ich es mir nicht.

    Fehler war, das ich es in der viewDidLoad setzen wollte und nicht in der viewDidAppear. Wieso geht das nur so?


    Dann direkt zu nem anderen Thema: Wie bereits beschrieben ist auf dem UIVIewController die PageView. Jedoch gibt es dort ein seltsames Verhalten. Wenn ich auf der letzten Seite bin ist es bei mehrmaligen rechts-wischen möglich zu einer Random Seite zu springen bzw. zu einer vorherigen View.
    Auf dem Bild ist dies zu erkennen. Freitag ist die letzte View im Controller - Er würde in dem Fall auf Dienstag springen und bei erneutem linkswischen auf Donnerstag.
    BIld:
    s7.directupload.net/file/d/3108/i2a67gjd_png.htm
    Code:

    Quellcode

    1. -(void)createPageViewWithContent:(NSNotification *)notify
    2. {
    3. NSLog(@"%@",@"Init des PageControllers");
    4. self.modelArray = [[NSMutableArray alloc] init];
    5. for (int index = 0; index <= 4 ; index++){
    6. [self.modelArray addObject:[[MensaContentViewController alloc] initWithNibName:@"MensaContentViewController" bundle:nil data:mensaData lastUpdatedOn:lastUpdated day:index]];
    7. }
    8. //Step 1
    9. //Instantiate the UIPageViewController.
    10. self.pageViewController = [[UIPageViewController alloc]
    11. initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl
    12. navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];
    13. //Step 2:
    14. //Assign the delegate and datasource as self.
    15. self.pageViewController.delegate = self;
    16. self.pageViewController.dataSource = self;
    17. //Step 3:
    18. //Set the initial view controllers.
    19. int today = [self getCurrentDay];
    20. NSArray *viewControllers = [NSArray arrayWithObject:[self.modelArray objectAtIndex:today]];
    21. [self.pageViewController setViewControllers:viewControllers
    22. direction:UIPageViewControllerNavigationDirectionForward
    23. animated:NO
    24. completion:nil];
    25. self.currentIndex = today;
    26. //Step 4:
    27. //ViewController containment steps
    28. //Add the pageViewController as the childViewController
    29. [self addChildViewController:self.pageViewController];
    30. //Add the view of the pageViewController to the current view
    31. [self.view addSubview:self.pageViewController.view];
    32. //Call didMoveToParentViewController: of the childViewController, the UIPageViewController instance in our case.
    33. [self.pageViewController didMoveToParentViewController:self];
    34. //Step 5:
    35. //Assign the gestureRecognizers property of our pageViewController to our view's gestureRecognizers property.
    36. self.view.gestureRecognizers = self.pageViewController.gestureRecognizers;
    37. // Die View in die richtige Position rücken
    38. CGRect frame = self.view.frame;
    39. //frame.origin.x = 0; frame.origin.y = 0;
    40. self.pageViewController.view.frame = frame;
    41. // MensaVW Nachricht neu setzen
    42. messageLabel.text = @"Das Campus Team wünscht ein schönes Wochenende!";
    43. [self viewDidLoad];
    44. [[NSNotificationCenter defaultCenter] removeObserver:self];
    45. //Gesture Controll
    46. - (UIViewController *)pageViewController:(UIPageViewController *)pageViewController
    47. viewControllerBeforeViewController:(UIViewController *)viewController
    48. {
    49. if(self.currentIndex < 1)
    50. {
    51. return nil;
    52. }
    53. self.currentIndex -= 1;
    54. MensaContentViewController *contentViewController = [self.modelArray objectAtIndex: self.currentIndex];
    55. return contentViewController;
    56. }
    57. - (UIViewController *)pageViewController:(UIPageViewController *)pageViewController
    58. viewControllerAfterViewController:(UIViewController *)viewController
    59. {
    60. if(self.currentIndex == self.modelArray.count-1)
    61. {
    62. return nil;
    63. }
    64. self.currentIndex += 1;
    65. MensaContentViewController *contentViewController = [self.modelArray objectAtIndex:self.currentIndex];
    66. return contentViewController;
    67. }
    Alles anzeigen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von hadschii ()