我使用故事板在Xcode中创建了一个项目。我使用单击和拖动方法使用按钮在两个视图控制器之间创建了一个segue。但是,为了让segue发生,我希望满足一系列条件。所以我已经将按钮编码为IB动作,并在实现文件中编写了条件代码。如果不满足条件,则会弹出警报视图,我不希望发生segue。但如果满足条件,那么我确实希望发生这种情况。
有没有办法以编程方式命令segue在IB动作函数内发生或不发生?或者以任何其他方式获得相同类型的结果?
谢谢!任何帮助表示赞赏!
答案 0 :(得分:1)
我找到了一个很好的解决方案,有人发布了...创建一个来自原始视图控制器的状态栏的segue,给它一个标识符,然后在操作按钮中添加此代码:
[self performSegueWithIdentifier:@"identifierName" sender:sender];
效果很好!
答案 1 :(得分:0)
您可以通过继承UIStoryboardSegue并在属性检查器中将segue样式与类名一起设置为“custom”来创建自定义segue。然后,您可以覆盖perform方法,以便在执行segue之前查看您的条件是否得到满足。例如
- (void) perform {
if (...) {
[[self sourceViewController] presentModalViewController:[self destinationViewController] animated:YES];
}
}
或者,只要不符合条件,您就可以禁用该按钮。也许这是更好的方法,因为用户可以看到segue不会发生,而不是在按下按钮后得到负面反馈。