Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 获取错误的EXC指令和可选。无swift_Ios_Xcode_Swift_Viewcontroller - Fatal编程技术网

Ios 获取错误的EXC指令和可选。无swift

Ios 获取错误的EXC指令和可选。无swift,ios,xcode,swift,viewcontroller,Ios,Xcode,Swift,Viewcontroller,我现在很困惑 我试图通过在secondView控制器上的文本框中输入文本并按下按钮,在一个viewController中设置标签。但是,当我这样做时,在尝试设置标签时,我得到了一个可选的.None错误-但是文本被传回,因为我可以从第一个viewController打印出来 我只是出于测试目的使用“HI”(节省时间)。 很明显,我在这里遗漏了很多代码——如果您还需要什么,请说出来 第一视图控制器: @IBAction func btnOptions(sender : AnyObject) {

我现在很困惑

我试图通过在secondView控制器上的文本框中输入文本并按下按钮,在一个viewController中设置标签。但是,当我这样做时,在尝试设置标签时,我得到了一个可选的.None错误-但是文本被传回,因为我可以从第一个viewController打印出来

我只是出于测试目的使用“HI”(节省时间)。 很明显,我在这里遗漏了很多代码——如果您还需要什么,请说出来

第一视图控制器:

@IBAction func btnOptions(sender : AnyObject) {
    var view: SecondViewController = SecondViewController()
    self.presentViewController(view, animated: true, completion: nil)
}

func setLabel(text: String)
{
    println(text)
    lblTester.text = text
}
@IBAction func btnTester(sender : AnyObject) {
    var first: ViewController = ViewController()
    first.setLabel("HI")
    self.dismissModalViewControllerAnimated(true)
}
第二视图控制器:

@IBAction func btnOptions(sender : AnyObject) {
    var view: SecondViewController = SecondViewController()
    self.presentViewController(view, animated: true, completion: nil)
}

func setLabel(text: String)
{
    println(text)
    lblTester.text = text
}
@IBAction func btnTester(sender : AnyObject) {
    var first: ViewController = ViewController()
    first.setLabel("HI")
    self.dismissModalViewControllerAnimated(true)
}

lblTester是一个插座,因此在加载视图之前,它是零(可选值),或者您没有初始化它,因此您需要在设置值之前检查lblTester是否存在,即

func setLabel(文本:字符串)
{
println(文本)
如果let label=lblTester{
lblTester.text=文本
}

}

您能演示如何设置
lblTester
?我的猜测是,它是零。它确实是零。但如果我尝试设置文本,它肯定会改变吗?在我的viewDidLoad方法中,它将文本设置得很好(作为测试进行)
@IBOutlet var lblTester:UILabel=nil
Ah,从而消除了错误消息-谢谢!出于某种原因,我认为应该在调用
setLabel
之前先初始化。我知道现在发生了什么。但是,您现在如何设置标签?由于函数都在初始化之前运行。。。我将设置一些类似的变量,一旦我让它工作,您可以有一个单独的模型来存储您的值,同时设置值检查isViewLoaded,如果视图已加载set text value,当视图即将显示set text value from model object时。