ios segue条件

时间:2013-08-29 22:54:08

标签: iphone ios

我试图在某些条件之后执行segue。我在主要的Storyboard中创建了modal segue,从nextPushed按钮到下一个视图控制器。

(IBAction)nextPushed:(id)sender {
//Perform check that every field /date/from/to/ choised and exists  
NSString *fromText = [NSString alloc];
NSString *toText = [NSString alloc];
NSString *pasNumText = [NSString alloc];
NSString *dateText = [NSString alloc];
dateText = self.dateAndTimeLabel.text;
fromText = self.fromLabel.text;
toText = self.toLabel.text;
pasNumText = self.numOfPassengersLabel.text;
if (!([fromText isEqual:@"Choice" ]) && !([toText isEqual:@"Choice"] ) && !([pasNumText isEqual:@"Choice"]) && !([dateText isEqual:@"Choice"])) {
    NSLog(@"All fields choisen");
    NSLog(@"Going to next view");
    [self performSegueWithIdentifier:@"goToDannie" sender:sender];
} else {
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Warning" message:@"Not all fields selected" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
    [alert show];
}
}

即使条件不正确也在执行segue并在下一个视图中显示警告。

2 个答案:

答案 0 :(得分:14)

将segue从按钮删除到视图控制器。而是从包含nextButton的视图控制器控制拖动到要转移到的视图控制器。然后,只有在满足条件的情况下,performSegueWithIdentifier才会运行。

答案 1 :(得分:1)

当你想要一个条件segue时,你应该从控制器(而不是按钮)进行segue。然后,如果满足条件,请使用performSegueWithIdentifier:sender:来触发segue。