2014-12-25 55 views
0

我正在尝试使用shouldPerformSegueWithIdentifier来验证我的segue是否会执行。问题在于segue先执行,然后检查shouldPerformSegue。在我的应用程序中,这只发生在我的视图控制器的初始加载过程中,但成功地在继续加载。防止Segue失败

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

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

      return NO; 
     } 
    } 

    return YES; 
} 
+0

“问题是segue首先执行,然后检查shouldPerformSegue”这是不正确的。你需要更好地描述正在发生的事情。 – matt

+0

你在打电话给performSegue吗?因为如果你是,它不会调用shouldPerformSegueWithIdentifier。 –

+0

是的,我正在调用执行segue。我应该用什么来代替迈克? – Michael

回答

0

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

1

问题是我打电话performSegueWithIdentifier以及shouldPerformSegueWithIdentifiershouldPerformSegue未被调用,因为performSegueWithIdentifier被首先调用。