Событие встряхивания устройства SWIFT

Здравствуйте!
Подскажите, пожайлуйста, как реализовать функцию очистки текстовых полей при помощи встряхивания телефона.
Я добавил расширение в swift файл следующего содержания:
extension UIWindow {
override open func motionBegan(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
super.motionBegan(motion, with: event)
guard motion == UIEvent.EventSubtype.motionShake else {
return
}
if Settings.shared.defaults.bool(forKey: "ShakeSwitch") == true {
let generator = UINotificationFeedbackGenerator()
generator.notificationOccurred(.warning)
//Выполнить что-то тут, если значени ключа ShakeSwitch = true
}
}
}
Все работает отлично.
Но есть одно но...
Я хотел чтобы на определенных View стирались данные с текстовых полей при встряхивании телефона.
Если добавить вышеуказанный мною код (без extension) во все View, где необходимо это сделать - работает все нормально. Но если я переключу switch в положение false, а затем опять в true, то функция встряхивания не работает. Она начинает работать если выгрузить View из памяти и загрузить заново.
Пытался создать метод для управления textField'ами из extension:
let view = myViewController()
view.textBox1.text = ""
но всегда приложение падает с ошибкой, что найден nil
Подскажите как это можно реализовать?