为什么不能通过使用另一个viewController来设置viewController的变量值?

时间:2015-08-26 08:24:24

标签: ios swift

我知道这是重复问题,但我找不到解决问题的方法。我有两个控制器。 HomeViewcontroller的变量“myValue”的值不能通过使用ViewController类来设置。我不知道这里的问题,但代码工作没有错误。但是当我打印“myValue”时它显示nil.Destination视图控制器不是我想设置变量值的控制器。目标视图控制器是一个标签栏控制器,所以我想设置第一个标签栏和第二个标签栏视图控制器的变量值。这是我的代码: -

import UIKit

  class ViewController: UIViewController { 

   override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {

    if(segue.identifier == "gotoHome") {
        println("1111")

        var storyboard = UIStoryboard(name: "Main", bundle: nil)
        var viewController = storyboard.instantiateViewControllerWithIdentifier("HomeViewController") as! HomeViewController
        viewController.myValue = 8888


         }

      }


  }

这是另一个视图控制器

import UIKit

 class HomeViewController: UIViewController {

   var myValue: Int!

    override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.
       println(myValue)

       }
  }

2 个答案:

答案 0 :(得分:1)

更改为:

let viewController = segue.destinationViewController as! HomeViewController

答案 1 :(得分:0)

您正在myValue中打印viewDidLoad的值,当您从故事板中对其进行实例化时,会调用该值myValue。您在创建实例后设置了myValue。例如,尝试在viewWillAppear中打印msvcr120d.dll error,然后设置它。