繁体   English   中英

如何返回到先前在同一视图控制器上随机生成的数据

[英]How to go back to previous data randomly generated on same view controller

我是编码的新手,我正在尝试编码显示随机引号的随机生成器。 我能够做到。 但是我希望能够返回到我以前生成的报价,并且找不到解决方法。 我没有要显示的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




}

}

您可以简单地创建var来保存前一个报价。 并在用户按下时返回。 或者,如果您希望所有报价都在按下后返回。 您可以为它们保留一个单独的数组,例如var generateQuotes = 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)

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM