[英]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.