我有一个带有2个标签的视图控制器 - 每个标签都是从2个独立的表控制器中的列表中填充的。在我的视图控制器中,我有2个变量( temp 和 temp_1 )从表控制器接收数据并填充标签。 当我调用第一个表视图并选择一个正常工作的项目并填充我的第一个标签时,然后我调用第二个表视图也可以工作,我的第二个标签被填充 - 除了第一个标签现在是空白的 - 因为temp现在是空白的。 我从第一个表视图中附加了我的prepareForSegue,显示我将变量 temp 传递回我的视图控制器。 (我的第二个是相似的并且传回 temp_1 ) 谢谢你的帮助。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "return_1" {
if let destination = segue.destinationViewController as? main_ViewController {
if let row = tableView.indexPathForSelectedRow?.row {
destination.temp = array1[row] as! String
}
}
}
}
答案 0 :(得分:2)
我的猜测是,你用语言说的并不是你实际上在做什么。你说"回到我的视图控制器",好像你是从表视图返回到主视图控制器。这就是你想要做什么以及你应该做什么,但它不是你正在做的事情(我在猜测)。我认为您已经从表视图到主视图控制器使用正常的 segue 设置故事板。那不会回来;它创建了一个全新的主视图控制器。所以当然缺少旧标签值,因为这是一个不同的视图控制器,来自具有旧标签值的那个(实际上仍然存在,两层向下,被这个新实例覆盖)
你想要的是一个展开segue 。这就是你怎么说"回去"在故事板中。