我有一個視圖控制器顯示帶有外鍵的標籤。它有4個按鈕,每個按鈕有3個隨機單詞和1個匹配外來單詞的單詞。點擊其中一個按鈕後,需要轉換到底部的兩個視圖控制器中的一個。如果您點擊的按鈕與標籤不匹配,並且右側的視圖控制器顯示您已正確顯示該單詞並在隨機選擇的句子中顯示該單詞,則左側的一個單詞將查看單詞。多個按鈕,每個按鈕都延伸到多個ViewControllers
問題是我一直在googling如何從一個按鈕正確地延續多個視圖,同時在大約5個小時的時間傳遞數據,我不能想出一個解決方案。
:編輯我沒有足夠的聲望發佈圖像。抱歉!這很痛
我試着做一個複雜的prepareForSegue()函數,但我沒有辦法在每個按鈕被按下時調用它。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if ButtonAnswer1.description == testedWord {
if (segue.identifier == "segueToAnsweredCorrect") {
var acvc : AnsweredCorrectViewController = segue.destinationViewController as! AnsweredCorrectViewController;
println(testedWord)
println(randomSentenceToTransfer)
acvc.testedWord = testedWord
acvc.sentenceTransferred = randomSentenceToTransfer
}
if ButtonAnswer2.description == testedWord {
if (segue.identifier == "segueToAnsweredCorrect") {
var acvc : AnsweredCorrectViewController = segue.destinationViewController as! AnsweredCorrectViewController;
println(testedWord)
println(randomSentenceToTransfer)
acvc.testedWord = testedWord
acvc.sentenceTransferred = randomSentenceToTransfer
}
if ButtonAnswer3.description == testedWord {
if (segue.identifier == "segueToAnsweredCorrect") {
var acvc : AnsweredCorrectViewController = segue.destinationViewController as! AnsweredCorrectViewController;
println(testedWord)
println(randomSentenceToTransfer)
acvc.testedWord = testedWord
acvc.sentenceTransferred = randomSentenceToTransfer
}
if ButtonAnswer4.description == testedWord {
if (segue.identifier == "segueToAnsweredCorrect") {
var acvc : AnsweredCorrectViewController = segue.destinationViewController as! AnsweredCorrectViewController;
println(testedWord)
println(randomSentenceToTransfer)
acvc.testedWord = testedWord
acvc.sentenceTransferred = randomSentenceToTransfer
}
else {
func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier == "segueToReviewCard") {
var rcvc : ReviewCardViewController = segue.destinationViewController as! ReviewCardViewController;
rcvc.translationReviewed = testedTranslation
rcvc.wordReviewed = testedWord
}
}
}
}
}
}
}
}
我試圖做一個函數與每個按鈕可用於:
func performSegue(sender: UIButton) {
// checks if button's text matches the word tested variable's string
if sender.description == wordTested {
self.performSegueWithIdentifier(identifier: "segueToAnswerCorrect", sender: AnyObject?)
// I don't know how to pass data outside of prepareForSegue()
}
else {
self.performSegueWithIdentifier(identifier: "segueToReviewCard", sender: AnyObject?)
// pass data
}
}
我不知道如何才能正常工作方案和代表還和我不知道,這將是該解決方案與否。
如果你有任何關於這方面的信息,這將是一個救星。
第二個代碼塊實際上應該工作得很好。 – luk2302
'prepareForSegue'已經太晚了,無法控制使用哪個segue。您的'performSegue'功能正處於正確的軌道上。訣竅是'sender'可以是你喜歡的任何對象,所以你可以傳遞可用於'prepareForSegue'函數的數據 – Paulw11