2017-06-07 9 views
0

私はコーディングが新しく、ランダムな引用符を表示するランダムジェネレーターをコーディングしようとしています。私はそれを行うことができます。しかし、私は生成し、それを行う方法を見つけることができない以前の引用に戻ることができるようにしたい。私はxcodeを表示する必要はありません。すべてのヘルプは非常にあなたは、単に以前の引用を保持するためにVARを作成することができます同じビューコントローラーでランダムに生成された前のデータに戻る方法

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 generatedQuotes = Array()のように、別々の配列を保持することができます。アクション上で要素を逆方向に移動します。 random要素を配列に追加するか、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

関連する問題