ios – 在Swift中将值从一个视图控制器传递到另一个视图控制器

我正在研究Swift,我在tableview的didSelectRowAtIndexPath方法中遇到了错误.
我想将值传递给另一个视图控制器,即’secondViewController’.这里EmployeesId是一个数组.相关代码如下:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    var view: Dashboard = self.storyboard?.instantiateViewControllerWithIdentifier("Dashboard") as Dashboard

    self.navigationController?.pushViewController(view, animated: true)
    secondViewController.UserId = employeesId[indexPath.item]  //getting an error here.
}

但我得到这个错误:
  致命错误:在展开Optional值时意外发现nil.

任何帮助将不胜感激.

最佳答案
这是一个有两个假设的通用解决方案.首先,UserId不是UILabel.其次,您打算使用在第二行中实例化的视图,而不是使用secondViewController

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    var view: Dashboard = self.storyboard?.instantiateViewControllerWithIdentifier("Dashboard") as Dashboard

    self.navigationController?.pushViewController(view, animated: true)
    view.UserId = employeesId[indexPath.row]
}

这是Dashboard的样子:

class Dashboard: UIViewController {
    var UserId: String!
    @IBOutlet var userIDLabel: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
        userIDLabel.text = UserId
    }

    ...
}

转载注明原文:ios – 在Swift中将值从一个视图控制器传递到另一个视图控制器 - 代码日志