2014-12-25 83 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被首先調用。