Meine iOS-App erfordert eine benutzerdefinierte Gruppe von Alerts mit ähnlicher Funktionalität. Kann ich diese in einer Klasse packen, damit ich nicht in jeden UIViewController einfügen muss?Wie packen benutzerdefinierte UIAlertController in einer Klasse (swift)?
func displayAlert(msg:String, handler: (UIAlertAction) -> Void){...}
func successMsg (msg: String){...}
func failMsg(msg: String){...}
Ich habe versucht, sie in eine Unterklasse (AlertViewController) von UIViewController zu packen, aber dann gab es Laufzeitfehler: "Versuch < ... UIAlertController ...> auf < ... UIAlertController zu präsentieren .. .> deren Ansicht nicht in der Fensterhierarchie steht! "
Code in MyViewController:
@IBAction func leave() {
let date = getDate()
let datePresent = dateForPresent()
if stID == nil || name == nil {
return
} else {
alert.displayAlert("\(datePresent)"){action in
self.request.getResult(self.request.leavePara(self.stID!, date: date, name: self.name!)){ (result) in
dispatch_async(dispatch_get_main_queue(), {
let flag = result["result","out_Flag"].int
print(result)
let msg = result["result","out_nszRtn"].string!
if flag == 0 {
self.alert.successMsg(msg){ action in
self.performSegueWithIdentifier("personUnwind", sender: self)
}
}else {
self.alert.failMsg(msg)
}
})
}
}
}
}
So den Code zeigen, dass diese Warnung ausgelöst! – matt
Eigentlich ist es egal, wie man das Warning repariert, man fragt nur, wie man so etwas normalerweise macht. –