如何创建有条件的争论

时间:2012-09-29 15:41:33

标签: xcode4.3

我使用故事板在Xcode中创建了一个项目。我使用单击和拖动方法使用按钮在两个视图控制器之间创建了一个segue。但是,为了让segue发生,我希望满足一系列条件。所以我已经将按钮编码为IB动作,并在实现文件中编写了条件代码。如果不满足条件,则会弹出警报视图,我不希望发生segue。但如果满足条件,那么我确实希望发生这种情况。

有没有办法以编程方式命令segue在IB动作函数内发生或不发生?或者以任何其他方式获得相同类型的结果?

谢谢!任何帮助表示赞赏!

2 个答案:

答案 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];
    }
}

另请参阅文档http://developer.apple.com/library/IOs/#featuredarticles/ViewControllerPGforiPhoneOS/CreatingCustomSegues/CreatingCustomSegues.html

或者,只要不符合条件,您就可以禁用该按钮。也许这是更好的方法,因为用户可以看到segue不会发生,而不是在按下按钮后得到负面反馈。