Segue不设置目标视图控制器

时间:2018-05-09 19:43:49

标签: ios swift

问题:

当我从辅助视图控制器返回主视图控制器时,我无法设置实例变量。

设定:

我的主视图控制器有一个UIButton与第二个视图控制器的Show segue相关联。该第二视图控制器具有集合视图(它是日历),其触发对原始视图控制器的显示segue。我试图在第一个视图控制器中设置一个变量,在第二个视图控制器中调用prepare(for segue :)。没有骰子。

代码:

主视图控制器:

class ViewController: UIViewController {
    var myDate=Date()

    func viewDidAppear(): {
        updateDateLabel(myDate)
    }
    ...
}

日历(第二个)视图控制器:

class CalendarViewController: UIViewController {
    var selectedDate: Date?

    func calendar(..., didSelectDate date: Date, ...) {
        selectedDate = date
    }

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "dateSelected" {
            let vc = segue.destination as! ViewController
            vc.myDate = self.selectedDate
        }
    }

我怀疑我的主视图控制器正在重新初始化myDate变量,但我该如何解决这个问题呢?

1 个答案:

答案 0 :(得分:0)

不,主视图控制器不会重新初始化myDate

您以错误的方式创建了myDate,请按以下方式创建:

var myDate: Date?

或者

var myDate = Date()