1

我使用情节提要在 Xcode 中创建了一个项目。我使用单击和拖动方法在两个视图控制器之间创建了一个 segue,并带有一个按钮。但是,为了使 segue 发生,我希望满足某些条件。所以我已经将按钮编码为 IB 动作,并在实现文件中编写了条件代码。如果不满足条件,则会弹出警报视图,我不希望发生转场。但如果条件得到满足,那么我确实希望继续发生。

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

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

4

2 回答 2

1

我找到了一个很好的解决方案,有人发布了......创建一个源自原始视图控制器的状态栏的 segue,给它一个标识符,然后在操作按钮中添加此代码:

[self performSegueWithIdentifier:@"identifierName" sender:sender]; 

效果很好!

于 2012-10-13T01:42:22.383 回答
0

您可以通过继承 UIStoryboardSegue 并将 segue 样式与属性检查器中的类名一起设置为“自定义”来创建自定义 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 不会发生,而不是在按下按钮后得到负面反馈。

于 2012-09-29T16:01:04.767 回答