ios - 无法获取另一个类中 var 的值

标签 ios swift string var

我试图从另一个类获取 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/

相关文章:

java - 代码段的时间复杂度

javascript - 在 JavaScript 中检查字符串是否相等的正确方法是什么?

java - ''s cannot be resolved' ' 如何解决此错误?

ios - XCode 7 项目重命名导致 XCTestCase 中出现 'Cannot import module being compiled' 错误

ios - 从 Assets 文件夹中打开视频文件并播放

ios - 暂时禁用点击手势

Swift:手势不会带回 TabBar

iphone - AVPlayer 反向播放

iOS SpreadsheetView,旋转时切纸

swift - 我的 UIButton 没有调用目标方法