执行iOS功能 - 无法将数据传递到不同的ViewController

时间:2017-08-01 13:41:33

标签: ios swift

我无法将数据从ViewController传递到NewVC - 另一个UIViewController。我被困在这里几个小时没有结果,所以这是我解决这个问题的最后手段。

  

对于不足的想法:

     

我的ViewController代码

class ViewController: UIViewController{
    @IBOutlet weak var name: UITextField!
    @IBOutlet weak var lastName: UITextField!

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

    switch segue.identifier {

    case "seg_One"? :

        if let source = segue.source as? ViewController
            ,let destination = segue.destination as? NewVC {

                destination.name.text = source.name.text  //Error    
                destination.lastName.text = source.lastName.text //Error

            }

        default: break

        }

    }

// Bunch of other code such as ViewDidLoad()
}
  

NewVC代码:

class NewVC: UIViewController {

  @IBOutlet weak var name: UILabel!
  @IBOutlet weak var lastName: UILabel!

  override func viewDidLoad() {
     super.viewDidLoad()

   }    

}
  

错误是:致命错误:在打开时意外发现nil   可选值

1 个答案:

答案 0 :(得分:0)

更改如下

class NewVC: UIViewController {

   var strName: String?
   var strLastName: String?

  @IBOutlet weak var name: UILabel!
  @IBOutlet weak var lastName: UILabel!



  override func viewDidLoad() {
     super.viewDidLoad()
     self.name = self.strName
     self.lastName = self.strLastName

   }    

}

分配segue如下

destination.strName = source.name.text 
 destination.strLastName= source.lastName.text