我正在研究这个tutorial,它展示了如何使用故事板创建应用。我的viewController有两个UIButtons,我已经将一个segue连接到那些UIButtons。这些segue推出了一个新的viewController。
现在我正在寻找一种方法来取消这个segue,如果某个条件变为真。当我使用旧的xib文件创建我的界面时,我能够做到这样的事情:
-(IBAction)sendButton:(id)sender {
if(TRUE) {
// STOP !!
}
}
这不再适用了。如何取消推送新的viewController?
答案 0 :(得分:27)
不。您无法取消直接链接到UIButton等界面元素的segues。
但是有一种解决方法。
将步骤5中的操作更改为以下内容:
- (IBAction)redButtonPressed:(id)sender {
[self performSegueWithIdentifier:@"PushRedViewController" sender:sender];
}
答案 1 :(得分:10)
您可以通过在代码中添加以下方法来实现此目的
- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender {
if([identifier isEqualToString:@"btnSegue"])
{
return YES;
}
else{
return NO;
}
}
让我们假设您的segue是btnSegue.And如果您需要根据某些条件执行segue,您可以拥有以下代码
if(check)
{
[self performSegueWithIdentifier:@"btnSegue" sender:self];
}
如果检查是BOOL,您可以根据您的条件设置真或假。