UipageControl uiControleventValueChanged - Comment puis-je connaître la valeur précédente?
-
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.
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
}