如何取消 UIPageControl 的 UIControlEventValueChanged 事件?

How to cancel UIPageControl's UIControlEventValueChanged event?

我有一个页面控件,我希望能够阻止某些页面更改事件(无需完全禁用该控件)。基本上,我希望用户在回答当前页面上的所有问题之前无法移动到下一页,但我仍然希望他们能够向后移动。

有没有办法让控件监听类似 "will change" 的事件并取消它?

您应该可以这样做,其中 condition 是一个布尔值,如果他们回答了所有问题,您可以将其设置为是,

@implementation ViewController {
    BOOL condition;
    NSInteger pageNumber;
}

- (void)viewDidLoad {
    [super viewDidLoad];
    pageNumber = 5; // I set this to 5 which was the page control's inital value just for the test
    condition = NO;
}



- (IBAction)pageControlTapped:(UIPageControl *)sender {
    if (condition) {
         pageNumber = sender.currentPage;
        // move to the next or previous page
    }else{
        if (pageNumber >= sender.currentPage) {
            pageNumber = sender.currentPage;
            // move to the previous page
        }else{
            sender.currentPage = pageNumber;
            // don't move
        }
    }
}