Вы можете использовать замыкание:
метод a () будет:
func a(_ completion: (() -> ())?){
//Do all of your staff, at the end call this:
completion()
}
Вы можете вызвать метод двумя способами:
a() //this will not execute the callback
//this is a callback where you call the other function
a(){
b()
}