将数据从视图控制器传递到另一个视图控制器
问题描述:
我还没有找到我的问题的确切解决方案。我需要将数据从一个视图控制器传递到另一个视图控制器。问题是,在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 ?.
答
你没试过吗?
// ResultsViewController.swift
override func viewDidLoad() {
super.viewDidLoad()
namelabel.text = name
}
它显示一个错误:可选类型“字符串”的值不解包 –
@TobyV。在发布的代码中,您通过这种方式声明了名称-var'var name =“”'。这意味着没有东西可以打开,它已经是非可选的了。是否有可能,您最近已将声明更改为'var name:String? =“”'? –
我使用那里使用namelabel.text = name和namelabel.text是可选的,所以它可能是问题。你知道如何做一个非可选的吗?非常感谢 –