yoomoney / yookassa-payments-swift

This library allows implementing payment acceptance into mobile apps on iOS and works as an extension to the YooMoney API
https://yookassa.ru/developers
MIT License
41 stars 41 forks source link

Не закрывается окно оплаты #38

Closed whalemare closed 5 years ago

whalemare commented 5 years ago

Снимок экрана 2019-09-05 в 10 25 00

Показываю viewController вот так

DispatchQueue.main.async {
    self.viewController = TokenizationAssembly.makeModule(
        inputData: inputData,
        moduleOutput: self
    )
    let rootViewController = UIApplication.shared.keyWindow!.rootViewController!
    rootViewController.present(self.viewController!, animated: true, completion: nil)
}

Он отображается как всплывающее окно, но не закрывается, когда нажимаешь в пустое место над экраном. что нужно поменять, чтобы он закрывался?

oltv00 commented 5 years ago

@whalemare Привет! При клике вне области контейнера должен вызываться метод func didFinish(on module:, with error:) (или func didFinish(on module:) если версия меньше 2.2.0) протокола TokenizationModuleOutput.

Покажи код его обработки, и заодно проверь вызывается ли он.

whalemare commented 5 years ago

@oltv00 спасибо за объяснение, разобрался! Использовал код для библиотеки ниже 2.2.0, после обновился на 2.2.0, но не добавил обработку метода func didFinish(on module:, with error:)

Теперь это выглядит вот так:

    func didFinish(on module: TokenizationModuleInput, with error: YandexCheckoutPaymentsError?) {
        DispatchQueue.main.async {
            self.viewController?.dismiss(animated: true)
        }
    }