2013-08-29 109 views
3

我想在一些条件后执行segue。我在主Storyboard中从nextPed按钮创建了模态segue到下一个视图控制器。ios继续条件

(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

为了清晰起见,我编辑了您的代码。 – Brian

回答

14

从按钮中删除segue到视图控制器。相反,控制 - 从包含nextButton的视图控制器拖放到要继续播放的视图控制器。那么performSegueWithIdentifier只有在符合条件时才会运行。

+0

感谢它是快速和有益的:) – DmitryYork

+0

很高兴我可以帮助 - 继续工作! – Steve

1

当你想要一个有条件的segue时,你应该从控制器(而不是按钮)制作segue。那么,如果你满足条件,使用performSegueWithIdentifier:sender:触发segue。

+0

感谢您的帮助! – DmitryYork