问题:
当我从辅助视图控制器返回主视图控制器时,我无法设置实例变量。
设定:
我的主视图控制器有一个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变量,但我该如何解决这个问题呢?
答案 0 :(得分:0)
不,主视图控制器不会重新初始化myDate
您以错误的方式创建了myDate,请按以下方式创建:
var myDate: Date?
或者
var myDate = Date()