передать функцию в качестве параметра swift - PullRequest
0 голосов
/ 19 сентября 2019

Я хочу передать

self? .Present (mainvc, animated: true)

в качестве параметра в функцию.

Однако результирующий тип имеет видvoid.

Так как я могу передать его в качестве параметра в другую функцию?

Ответы [ 2 ]

1 голос
/ 19 сентября 2019

в получающем классе вы можете сделать это:

private var myfunc : Func?

func set(_func: @escaping Func) {
    self.myfunc = _func
    self.myfunc?()
}
0 голосов
/ 19 сентября 2019

Сначала вам нужно определить Замыкание, соответствующее определению функции.

typealias CompletionHandler = (UIViewController, Bool, (() -> Void)?) -> Void

Затем объявите функцию, которая принимает это Замыкание в качестве параметра

func yourFunction(completionHandler: @escaping CompletionHandler) {

}

Перед вызовом "yourFunction"вам нужно убедиться, что вы развернули себя

guard let strongSelf = self else { return }

Затем передайте функцию "present" в "yourFunction"

strongSelf.yourFunction(completionHandler: present) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...