Причина, по которой клавиатура не закрывается, заключается в том, что какой-то View будет перехватывать эти события, а не потому, что endEditing не работает.
Вы можете, тем не менее, отклонить клавиатуру глобально, это может быть простым выходом:
UIApplication.shared.sendAction(#selector(UIResponder.resignFirstResponder), to: nil, from: nil, for: nil)
Хорошего вам дня!