目标操作被调用两次

Lal*_*cky 5 iphone objective-c ios

我有一个VC RaceDayChecklistViewController.m,它是RaceDayChecklistViewControllerBase.m的子类.

在RaceDayChecklistVC.m中,添加了一个被调用两次的目标操作.nextOrNewButton是点击的按钮,我想调用"demo"动作.另外,checklistnavigationItem是栏按钮项.

- (void)viewDidLoad
{
    checklistTableViewBase=checklistTableView;
   checklistNavigationItemBase=checklistnavigationItem;
    nextOrNewButtonBase=nextOrNewButton;

    [nextOrNewButton addTarget:self action:@selector(demo) forControlEvents:UIControlEventAllEvents];

}

-(void) demo
{
    RaceDayDataController *sharedController = [RaceDayDataController sharedDataController];

    if (sharedController.isSubmited)
    {
        [self.checklistnavigationItem setTitle:@"New"]; //
    }
    else
    {
        [self.checklistnavigationItem setTitle:@"Next"];
        [self showAlert];
    }
}

-(void) viewWillDisappear:(BOOL)animated
{
    [nextOrNewButton removeTarget:self action: @selector(demo) forControlEvents:UIControlEventAllEvents];
}
Run Code Online (Sandbox Code Playgroud)

可能是多次调用动作演示的原因是什么?它是基类负责人吗?

请指导.

kov*_*pas 6

UIButton在按下时生成多个事件:通常它们是UIControlEventTouchDownInsideUIControlEventTouchUpInside.所以,如果你想处理新闻,你应该抓住你需要的那个(可能UIControlEventTouchUpInside),而不是UIControlEventsAll.