I init a UIImpactFeedbackGenerator
with a timer with TimeInterval=1.0
. After some seconds, I call the deinitHapticFeedback()
, as described below and navigate to the next view controller, but the feedback doesn't stop and keeps occurring for about ten seconds after the new VC appears.
(Also, I tried calling deinitHapticFeedback()
in viewWillDisappear(_ animated: Bool)
, but the same thing happens.)
Do you have any idea for a more optimal deinit function for a UIFeedbackGenerator
?
private var feedbackGenerator: UIImpactFeedbackGenerator? = nil
private func generateHapticFeedback() {
feedbackGenerator = UIImpactFeedbackGenerator(style: .medium)
feedbackGenerator?.prepare()
DispatchQueue.main.async {
self.feedbackGenerator?.impactOccurred()
}
}
private func deinitHapticFeedback() {
feedbackGenerator = nil
}
Thanks in advance!