从unwind segue更新标签

时间:2015-03-30 19:32:09

标签: swift unwind-segue

我试图在触发展开segue的模态视图中执行某个操作后更改viewController的标签。

一旦解开segue,就应该更改当前视图的标签(模态所覆盖的标签)。

我目前尝试这样做会导致在展开“可选”值时出现意外的错误"错误。这是代码:

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 = ""
    }
}
}

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我做到了!我最终使用了一个全局布尔变量。我在菜单的初始加载时将其设置为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."
    }

}

希望有所帮助!