2016-03-26 17 views
-2

介紹斯威夫特防止情節串連圖板賽格瑞的發生

我創建一個應用程序Swift 2.0中只能執行的動作的一定的次數,說8.爲了實現這種行爲,我要取消應該通過在故事板上按下鏈接到它的按鈕來觸發某個階段,performAction

研究

我遇到問題,跑起來像http://stackoverflow.com/questions/8066525/prevent-segue-in-prepareforsegue-method,這表明類似的代碼:

override func shouldPerformSegueWithIdentifier(identifier: String,sender: AnyObject?) -> Bool { 

    return true 
} 

實施

我實現它想:

override func shouldPerformSegueWithIdentifier(identifier: "createCard" ,sender: AnyObject?) -> Bool { 
    if amountOfTimes > 8 { //To be triggered if the segue should be cancelled 
     return false 
    } else { 
    return true 
    } 
} 

但是我得到的錯誤

預計 '' 分隔符

我怎麼能有SEGUE被取消應amountOfTimes大於8?

回答

1

要檢查,如果你的標識符是"createdCard"使用shouldPerformSegueWithIdentifier方法是這樣的:

override func shouldPerformSegueWithIdentifier(identifier: String ,sender: AnyObject?) -> Bool { 

    return !(identifier == "createCard" && amountOfTimes > 8) 

} 
+0

謝謝!一旦我再次在電腦上試試。 – rocket101

+1

你應該更喜歡'return!(identifier ==「createCard」&& amountOfTimes> 8)'而不是不必要的'if'。 – Sulthan

+0

你100%正確@Sulthan將編輯答案。謝謝 – ronatory

1

的問題是這句話:

identifier: "createCard" 

這不是斯威夫特。這不是函數調用,它是函數實現。你必須說:

identifier: String 

identifier是不是你設置的值,它是你收到的值。然後你可以看看看看它是不是"createCard",但你沒有得到聲稱它是。

+0

謝謝! +1 .... – rocket101