2016-11-28 285 views
-1

我还没有找到我的问题的确切解决方案。我需要将数据从一个视图控制器传递到另一个视图控制器。问题是,在segue之后,传递的字符串数据不会出现在标签中。将数据从视图控制器传递到另一个视图控制器

func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject) { 
    if (segue.identifier == "segue1") { 
     if let destination = segue.destination as? ResultsViewController { 
      destination.name = correctslabel.text! 

第二控制器:有刚变量和“name”和一个UIlabel,其不显示传递的数据。

import UIKit 

class ResultsViewController: UIViewController { 

    @IBOutlet var namelabel: UILabel! 
    var name = "" 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     name = namelabel.text! 
    } 
}  

我已经尝试了很多方法来做到这一点,但他们都没有工作。谢谢

最后我为我做了一个重写函数,这意味着我必须将发件人从AnyObject更改为Any ?.

回答

0

你没试过吗?

// ResultsViewController.swift 
override func viewDidLoad() { 
    super.viewDidLoad() 
    namelabel.text = name 
} 
+0

它显示一个错误:可选类型“字符串”的值不解包 –

+0

@TobyV。在发布的代码中,您通过这种方式声明了名称-var'var name =“”'。这意味着没有东西可以打开,它已经是非可选的了。是否有可能,您最近已将声明更改为'var name:String? =“”'? –

+0

我使用那里使用namelabel.text = name和namelabel.text是可选的,所以它可能是问题。你知道如何做一个非可选的吗?非常感谢 –

相关问题