防止诅咒失败

时间:2014-12-25 00:33:55

标签: ios objective-c

我正在尝试使用shouldPerformSegueWithIdentifier来验证我的segue是否会被执行。问题是segue首先执行,然后检查shouldPerformSegue。在我的应用程序中,这只发生在我的视图控制器的初始加载期间,但成功地处理继续加载。

- (BOOL) shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender {

    if ([identifier isEqualToString:@"gameplay"]) {
        if ([[NSUserDefaults standardUserDefaults] boolForKey:@"preventSegue"] == YES) {

            return NO;
        }
    }

    return YES;
}

2 个答案:

答案 0 :(得分:1)

问题在于我与performSegueWithIdentifier一起呼叫shouldPerformSegueWithIdentifier。由于shouldPerformSegue首先被调用,因此未调用performSegueWithIdentifier

答案 1 :(得分:0)

可能是您已将一个segue直接从UIButton / UITableViewCell / UIBarButton连接到下一个视图控制器。请删除该segue,然后从源视图控制器创建一个新的segue到目标视图控制器。您可以检查是否正确完成。如果选择segue,则会突出显示整个视图控制器。完成后,在属性检查器中为该segue命名,然后在该按钮上点击performSegueWithIdentifier。您的shouldPerformSegueWithIdentifier将按预期工作。