UIPageControl UIControlEventValueChanged - как узнать предыдущее значение? - PullRequest
2 голосов
/ 25 января 2012

У меня есть UIPageControl объект, отлично работающий в моем приложении, за исключением того, что я не обрабатываю стандартное поведение «нажать, чтобы перейти / уменьшить».

Мне нужно:

  • обработайте это в моем приложении
  • знаю, каковы текущие и предыдущие значения UIPageControl.

Я знаю, что могу зафиксировать «новое» значение на UIControlEventValueChanged, но как мне узнать «старое»?Я вручную setCurrentPage в нескольких местах в моем коде, но сохранение старого состояния где-то там может привести к ошибкам и я думаю, что это своего рода хак.

1 Ответ

0 голосов
/ 25 января 2012

Не думаю, что есть свойство для сохранения предыдущей страницы, но почему бы не определить его? Вы можете сохранить все предыдущие номера страниц в объекте NSMutableArray и;

  • Когда вы собираетесь перейти на новую страницу, добавьте текущую в массив перед тем, как идти,
  • Всякий раз, когда вы захотите вернуться на предыдущую страницу, получите lastObject вашего массива и удалите его.

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

и

-(void)goToNextPage
{
    NSNumber *pageNumber = [NSNumber numberWithInt:self.pageControl.currentPage];
    [self.previousPagesArray addObject:pageNumber];
    //go to next page
}
...