我试图在某些条件之后执行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并在下一个视图中显示警告。
答案 0 :(得分:14)
将segue从按钮删除到视图控制器。而是从包含nextButton的视图控制器控制拖动到要转移到的视图控制器。然后,只有在满足条件的情况下,performSegueWithIdentifier才会运行。
答案 1 :(得分:1)
当你想要一个条件segue时,你应该从控制器(而不是按钮)进行segue。然后,如果满足条件,请使用performSegueWithIdentifier:sender:来触发segue。