从 unwind segue 更新标签

Update labels from unwind segue

我正在尝试更改 viewController 的标签,在从触发展开转场的模态视图中执行特定操作后。

一旦展开 segue 发生,当前视图(模态覆盖的那个)的标签应该被更改。

我目前尝试这样做会导致 "unexpectedly found nil while unwrapping an Optional value" 错误。这是代码:

class DataViewController: UIViewController {

var experiment: NSDictionary? 
@IBOutlet weak var titleLabel: UILabel!
@IBOutlet weak var bodyLabel: UILabel!

@IBOutlet weak var tlRightLine: UIImageView!
@IBOutlet weak var tlLeftLine: UIImageView!
@IBOutlet weak var brRightLine: UIImageView!
@IBOutlet weak var brLeftLine: UIImageView!

@IBOutlet weak var bodyTest: UITextView!

@IBAction func removeExperimentSegue(unwindSegue:UIStoryboardSegue) {
    removeExperiment = true
    titleLabel.text = "Done"
    bodyLabel.text = "Done"
}

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)        
    if let dict: NSDictionary = experiment {
        if let title = dict.objectForKey("title") as? String {
            self.titleLabel!.text = title
        }
        if let body = dict.objectForKey("body") as? String {
            self.bodyTest!.text = body
        }
    } else {
        self.titleLabel!.text = ""
        self.bodyLabel!.text = ""
    }
}
}

我做错了什么?

我做到了!我最终使用了一个全局布尔变量。我在菜单的初始加载时将其设置为 true,然后在展开 segue 期间将其翻转为 false。

var removeExperiment = false

class DataViewController: UIViewController { 

 @IBAction func removeExperimentSegue(unwindSegue:UIStoryboardSegue) {
    removeExperiment = true
}

if removeExperiment == true {
        doneLabel.text = "You've completed this experiment. You won't see it again unless you hit 'Reset' from the Home menu."
    }

}

希望对您有所帮助!