2017-06-07 20 views
0

我是新來編碼,我試圖編碼隨機生成器,顯示隨機引號。我能夠做到這一點。但是我希望能夠回到之前我已經生成的引號,並且無法找到實現它的方法。我沒有xcode顯示。任何幫助將不勝感激如何返回到在同一個視圖控制器上隨機生成的以前的數據

var myQuotes = ["Adversity is The Universe's Way of Directing Us Down a Differnt Path", "Pain is Temporary, Glory is Forever", "As You Think, So Shall You Become", "If You Can Dream It, You Can Achieve It", "Dreaming, Afterall, is a Form of Planning"] 

var randomGeneratedQuotes = Array <String>() 
var currentlyShown : String? 
var randomQuote: String { 
    let randomNumber = Int(arc4random_uniform(UInt32(myQuotes.count))) 
    return myQuotes[randomNumber] 

} 

var previousRandom: String? { 

    if currentlyShown == randomQuote { 
     let previous = randomGeneratedQuotes.index(of: currentlyShown!)! - 1 
     return randomGeneratedQuotes[previous] 
    } 

    return randomGeneratedQuotes.last 
} 




override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 

    var randomQuote: String { 
     let randomNumber = Int(arc4random_uniform(UInt32(myQuotes.count))) 
     return myQuotes[randomNumber] 

    } 
    quotesLabel.text = randomQuote 

    func storePrevious() { 
     if randomGeneratedQuotes.contains(randomQuote) {return} 
     randomGeneratedQuotes.append(randomQuote) 
} 
} 

//right hand button tapped 

@IBAction func RHSButton(_ sender: Any) { 

    var randomQuote: String { 
     let randomNumber = Int(arc4random_uniform(UInt32(myQuotes.count))) 
     return myQuotes[randomNumber] 


    } 
    quotesLabel.text = randomQuote 

    func storePrevious() { 
     if randomGeneratedQuotes.contains(randomQuote) {return} 
     randomGeneratedQuotes.append(randomQuote) 
    } 

} 

//left hand button tapped 

@IBAction func LHSButton(_ sender: Any) { 


    func pressedBack() { 
     currentlyShown = previousRandom 


    } 

    quotesLabel.text = previousRandom 




} 

}

+0

保存您的報價 –

+1

你可以簡單地添加那些在一個陣列,並顯示前一個? – Tj3n

+0

你能告訴我們一些代碼到目前爲止你做了什麼嗎? –

回答

0

您可以簡單地創建VAR保留以前的報價。並在用戶按下時返回。或者如果你想在按下後所有的報價來。您可以爲他們保留一個單獨的數組,如var generatedQuotes = Array()。並在動作上向後遍歷元素。只需將隨機元素附加到數組中或將lastQuote字符串保存在var中即可。

class ViewController: UIViewController { 
    var myQuotes = ["A","b","c"] // your all quotes stored here. 
    var randomGeneratedQuotes = Array<String>() // empty on start 
    var currentlyShown : String? 
    //use this not so random but will generate a random one 
    var randomQuote: String { 
     let randomNumber = Int(arc4random_uniform(UInt32(myQuotes.count))) 
     return myQuotes[randomNumber] 
    } 
    var previousRandom: String? { 
     if currentlyShown == nil { 
      let previous = randomGeneratedQuotes.indexOf(currentlyShown) - 1 
      return randomGeneratedQuotes[previous] 
     } 

     return randomGeneratedQuotes.last 
    } 
    func storePrevious() { 
     if randomGeneratedQuotes.contains(randomQuote) { return } // already has 
      randomGeneratedQuotes.append(randomQuote) 
    } 
    func pressedBack() { 
     currentlyShown = previousRandom 
     print(previous) 

} 
+0

非常感謝您的回覆。你能否提供一個代碼可能是什麼樣子的例子?我對這個 – iasla

+0

很新,我已經更新了它的不完整。但我認爲你得到了程序。 – amber

+0

我非常感謝您的幫助,但現在我遇到了這樣的問題,即當我按下按鈕返回時,什麼都沒有顯示。我認爲這是因爲randomGeneratedQuotes數組中沒有存儲任何內容。你能再次幫忙嗎?如果有幫助,我已將我的代碼放入最初的問題中 – iasla

相關問題