Ich möchte eine UIAlertView anzeigen, während meine Elemente von meinem Tabellenansicht-Controller abgerufen werden (aus dem EKEventStore). Sobald alle meine Artikel erschienen sind, möchte ich, dass die Warnung verschwindet.UIAlertView ablehnen, sobald alle Elemente in View Controller angezeigt werden
Ich habe versucht, die Warnung in ViewDidAppear() zu entlassen, aber das funktioniert nicht. Meine Warnung bleibt nur herum. Und ich kann es nicht einfach nach dem Code ablehnen, um meine Items abzurufen, weil das Abrufen auf einem eigenen Thread läuft und die Ausführung danach weiterführt - daher wird meine Warnung einfach erscheinen und sofort verschwinden.
let alert = UIAlertView(title: "Loading", message: "Please wait...", delegate: nil, cancelButtonTitle: "Cancel")
override func viewDidLoad() {
super.viewDidLoad()
dispatch_async(dispatch_get_main_queue()) {
let loadingIndicator: UIActivityIndicatorView = UIActivityIndicatorView(frame: CGRectMake(50, 10, 37, 37)) as UIActivityIndicatorView
loadingIndicator.center = self.view.center;
loadingIndicator.hidesWhenStopped = true
loadingIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.Gray
loadingIndicator.startAnimating();
self.alert.setValue(loadingIndicator, forKey: "accessoryView")
loadingIndicator.startAnimating()
self.alert.show()
}
// Code to fetch my items here...
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
self.alert.dismissWithClickedButtonIndex(-1, animated: true)
}
Sind Sie sicher, dass die '-1' Index funktioniert? Haben Sie überprüft, ob die Lade- und Löschfunktionen in der Reihenfolge aufgerufen werden, die Sie erwarten würden? – Putz1103
Der Index funktioniert. Dieser Code funktioniert in anderen Szenarios (d. H. Mit einem NSTimer, der die Kündigung nach fünf Sekunden aufruft.) Ich muss nur das Ereignis finden, das ich verwenden könnte, wenn alle meine Elemente im Tabellenansicht-Controller angezeigt werden. – Daniel
Wie wäre es mit dem gleichen Ort, an dem Sie dem 'loadingIndicator' sagen, die Animation zu stoppen? – Putz1103