我试图从另一个类获取 String var 的值,但是当我在新类上使用它时,该值是空的。 我有 MainViewController.swift 类:
var movieIDSelected = String()
@IBAction func tapPosterButton(_ sender: UIButton) {
switch sender.tag
{
case 101: movieIDSelected = theaterMovieID[0]
print(movieIDSelected) //The value isn't empty
break
}
}
第二个 MovieViewController.swift 类:
var HomeView = ViewPop()
override func viewDidLoad() {
super.viewDidLoad()
let movieID = HomeView.movieIDSelected
print(movieID) //The value is empty
}
最佳答案
使用您当前的代码在 MainVC 中尝试此操作
if let home = UIApplication.shared.keyWindow?.rootViewController as? ViewPop {
print("home exists ",home.movieIDSelected)
}
//
但是你应该只有1个segue到destinationVC并将其链接到VC而不是每个按钮的segue,然后在按钮操作中实现prepareForSegue
并触发performSegue
继续进行
//
@IBAction func tapPosterButton(_ sender: UIButton) {
switch sender.tag
{
case 101: movieIDSelected = theaterMovieID[0]
print(movieIDSelected) //The value isn't empty
self.performSegue(withIdentifier: "goToNext", sender:1)
break
}
}
//
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let des = segue.destination as! MovieViewController
des.sendedValue = self.movieIDSelected
des.buttonNumber = sender as! Int
}
//
class MovieViewController : UIViewController {
var sendedValue = ""
var buttonNumber = 0 // default value won't affect
}
关于ios - 无法获取另一个类中 var 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51390906/