Как правильно отменить modal viewcontroller с обработчиком завершения

У меня есть viewController1 и viewController2 который представлен модально, и я хочу использовать обработчик завершения, когда я увольняю второй, но я не могу получить реализацию. Я думал, что мне нужно написать функцию и просто поместить ее туда, как:

 viewController.dismissViewControllerAnimated(true, completion: funcToCall()) 

но затем я получаю эту ошибку:

Невозможно преобразовать значение типа '()' в ожидаемый тип аргумента '(() -> Void)?'

Кто-нибудь может объяснить мне, как я могу правильно выполнить обработчик завершения?

Довольно легко, передайте funcToCall() как параметр completion (важно отметить – здесь я использую фигурные скобки):

 viewController.dismissViewControllerAnimated(true, completion: { funcToCall() }) 

Документация по параметрам completion :

Блок, который будет выполняться после того, как контроллер вида отклонен. Этот блок не имеет возвращаемого значения и не принимает никаких параметров. Вы можете указать nil для этого параметра.

Просто удалите скобки и передайте имя функции в качестве параметра следующим образом:

 viewController.dismissViewControllerAnimated(true, completion: funcToCall) 

Это работает до тех пор, пока ваша функция funcToCall имеет type ()->Void like

 func funcToCall() { // do something }