Я создаю контроллер раскадровки в стиле раскадровки, как этот
Затем я нажимаю кнопку, отображается контроллер вида, а когда я щелкаю где-либо снаружи, контроллер вида «отклоняется».
Однако, когда я снова нажимаю кнопку, запускается новый экземпляр контроллера представления, а предыдущий все еще работает. Я попытался deinit
, но он не вызывается, когда контроллер представления "отклонен".
Как я могу либо уничтожить экземпляр контроллера представления при щелчке снаружи, либо "показать" уже созданный экземпляр?
Мой код в контроллере вида:
class FileTransViewController: NSViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do view setup here.
timer = Timer.scheduledTimer(timeInterval: 0.25, target: self, selector: #selector(updateProgress), userInfo: nil, repeats: true)
//print(123)
print("\(self)")
}
deinit {
print("destroyed")
if let timer = timer {
timer.invalidate()
}
}
@objc func updateProgress() {
print("updating progress")
}
}