Ответ 1
Обновление для Swift 3/4:
Необязательный параметр больше не является булевым выражением, а
устаревший func dismissModalViewControllerAnimated(animated: Bool)
больше не доступно в Swift.
Просто объявите параметр завершения как необязательное закрытие и передать его на
func dismiss(animated flag: Bool, completion: (() -> Void)? = nil)
который также принимает необязательное замыкание:
func dismiss(completion: (() -> Void)? = nil) {
self.dismiss(animated: true, completion: completion)
}
Старый (Swift 1.x?) ответ:
Объявить параметр completion
как (неявно развернутый) необязательный закрытие (() -> Void)!
:
func dismiss(completion: (() -> Void)!) {
if (completion) {
return self.dismissViewControllerAnimated(true, completion: completion)
}
self.dismissModalViewControllerAnimated(true)
}
Но заметьте, что вы можете позвонить
self.dismissViewControllerAnimated(true, completion: completion)
в любом случае, поскольку параметр completion
этой функции также является необязательным.
И
func dismissModalViewControllerAnimated(animated: Bool)
на самом деле отмечен как устаревший.