UipageControl uiControleventValueChanged - Comment puis-je connaître la valeur précédente?

StackOverflow https://stackoverflow.com/questions/8998627

  •  14-11-2019
  •  | 
  •  

Question

j'ai un UIPageControl L'objet fonctionne très bien dans mon application, sauf que je ne gère pas le comportement par défaut «Appuyez pour avancer / décrémenter».

J'ai besoin de:

  • Gérez-le dans mon application
  • savoir quelles valeurs actuelles et précédentes du UIPageControl est.

Je sais que je peux capturer la «nouvelle» valeur sur UIControlEventValueChanged, mais comment pourrais-je connaître le «vieux»? Je suis manuellement setCurrentPage À plusieurs endroits de mon code, mais enregistrer l'ancien état quelque part là-bas pourrait conduire à des bogues et est une sorte de hack, je pense.

Était-ce utile?

La solution

Je ne pense pas qu'il y ait une propriété pour garder la page précédente, mais pourquoi ne pas en définir une? Vous pouvez conserver tous les numéros de page précédents dans un NSMutableArray objet et;

  • Lorsque vous êtes sur le point d'aller sur une nouvelle page, ajoutez le actuel au tableau avant de partir,
  • Chaque fois que vous voulez revenir une page précédente, obtenez le lastObject de vous tableau et retirez-le.

    - (NSInteger)previousPageNumber
    {
        NSInteger pageNumber = 0;
        if(self.previousPagesArray.count > 0)
        {
            pageNumber = [[self.previousPagesArray lastObject] intValue];
            [self.previousPagesArray removeLastObject];
        }
    
        return pageNumber;
    }
    

et

-(void)goToNextPage
{
    NSNumber *pageNumber = [NSNumber numberWithInt:self.pageControl.currentPage];
    [self.previousPagesArray addObject:pageNumber];
    //go to next page
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top