motionBegan метод представления VC называется в представленном VC - PullRequest
0 голосов
/ 08 октября 2018

У меня есть UIViewController (VCA), который реагирует на жесты встряхивания:

override func motionBegan(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
    if motion == .motionShake {
        print("I'm shaking ...")
    }
}

VCA также имеет вид вида «присутствует модально», который представляет другой UIViewController (VCB).

После перехода к VCB цвет фона UIColor.clear, так что вы можете видеть фон VCA.Тем не менее, я пошел, я инициировал жест встряхивания в VCB срабатывает оператор печати «Я дрожу ...».

Почему это так?Я хочу отключить вызов метода motionBegan для VCA, когда я нахожусь внутри VCB.

Я попробовал следующее в VCB:

override var canBecomeFirstResponder: Bool {
    return false
}

но метод motionBegan из VCA все еще распознается из VCB.

РЕДАКТИРОВАТЬ

Предоставление пустого motionBegan метода в VCB останавливает вызов motionBegan метода в VCA, но это не похоже направильный путь ...

override func motionBegan(_ motion: UIEvent.EventSubtype, with event: UIEvent?) {
}
...