在检查其他方法问题之前调用了shouldPerformSegueWithIdentifier

时间:2015-01-14 09:19:02

标签: ios objective-c segue

我试图制作一个segue,但我有一个小问题,就是我点击了一个按钮,如果布尔值为YES,它将在segue中返回YES,否则返回NO但是每次我必须点击两次检查文本字段,因为它首先传递给shouldPerformSegueWithIdentifier,而它应该首先检查IBAction。

请问我该如何解决这个问题?

- (IBAction)search:(id)sender{

if ([_txtfld.text isEqual:@"test"]) {

    push = YES; //Bolean
}

else {

    push = NO; //Bolean
  }
}

- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender {

if ([identifier isEqualToString:@"SearchSegue"] && push==YES) {

    NSLog(@"Showed");
    return YES;
}
else{

    NSLog(@"Not showed");
    return NO;
  }
}

1 个答案:

答案 0 :(得分:2)

您需要从按钮中的操作中删除segue,将其移至视图控制器,然后在performSegueWithIdentifier方法中调用IBAction,或者只在{{1}中使用逻辑并删除shouldPerformSegueWithIdentifier方法。

所以,要么 -

IBAction

并摆脱- (IBAction)search:(id)sender{ if ([self.txtfld.text isEqual:@"test"]) { [self performSegueWithIdentifier:@"SearchSegue" sender:self]; } } 或摆脱shouldPerformSegueWithIdentifier方法而只是 -

IBAction