Ich habe eine benutzerdefinierte UIView mit einem UITapGestureRecognizer. Die Gestenerkenner ruft eine Methode namens hide() den Blick von der Superview als solche zu entfernen:Ist es möglich, einen Block Completion Handler von einer anderen Funktion in iOS aufzurufen?
func hide(sender:UITapGestureRecognizer){
if let customView = sender.view as? UICustomView{
customView.removeFromSuperview()
}
}
Die UICustomView auch eine Show() Methode hat, die es als ein Subview fügt hinzu, wie zum Beispiel:
func show(){
// Get the top view controller
let rootViewController: UIViewController = UIApplication.sharedApplication().windows[0].rootViewController!!
// Add self to it as a subview
rootViewController.view.addSubview(self)
}
Was bedeutet, dass ich ein UICustomView erstellen und sie als solche angezeigt werden:
let testView = UICustomView(frame:frame)
testView.show() // The view appears on the screen as it should and disappears when tapped
Nun, ich möchte, dass meine Show() -Methode in ein Verfahren mit einem Abschluss Block drehen, dass, wenn die Haut genannt wird () Funktion wird ausgelöst. Etwas wie:
testView.show(){ success in
println(success) // The view has been hidden
}
Aber das zu tun, so würde ich den Abschluss Handler der Show() -Methode von meinem hide() Methode aufrufen müssen. Ist das möglich oder übersehe ich etwas?
Clever! Und funktioniert wie ein Zauber, danke @GoZoner :) – Audioy