swift 新手,希望能得到我的答案。我需要将 NSArray 传递给下一个 View Controller ,并在按下按钮时以随机顺序传递。我在第二个 View Controller 中声明了 UILabel 和一个变量,segue 似乎可以正常工作。唯一的问题是它没有传递任何值(value)。这是我的代码。
@IBAction func ressedbutton(_ sender: Any) {
let quotes: NSArray = ["Quote 000", "Quote 001", "Quote 002"]
let range: UInt32 = UInt32(quotes.count)
let randomNumber = Int(arc4random_uniform(range))
let QuoteString = quotes.object(at: randomNumber)
// self.resul.text = QuoteString as? String
performSegue(withIdentifier: "showresult", sender: QuoteString)
let myVC = storyboard?.instantiateViewController(withIdentifier: "result") as! result
myVC.stringPassed =
(QuoteString as? String)!
}
第二个 View 的代码是
类结果:UIViewController {
var stringPassed = ""
@IBOutlet weak var ResultLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
ResultLabel.text = stringPassed
我认为我的问题出在 myvc.stringpassed=...?我有的arry如何随机传入?
提前致谢。
最佳答案
您需要做的是在 performSegue
中使用 sender
传递该值,然后在 prepare(for:sender:)
中访问该值> 并将值传递给 destinationController。
performSegue(withIdentifier: "showresult", sender: QuoteString)
现在在 prepare(for:sender:)
中使用这个 sender
参数
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let vc = segue.destination as? result, let data = sender as? String {
vc.stringPassed = data
}
}
关于swift - swift 将 NSArray 传递给下一个 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43868038/