Ich dachte, dass die heutige Ansicht jedes Mal, wenn ich es öffne, "viewWillAppear" aufruft, aber nicht. Wenn ich etwas in meiner App ändere, und dann rutsche ich für Today View herunter, manchmal aktualisiert die Ansicht und manchmal nicht.
Ich mache alle Logik in viewWillAppear (Daten von coreData abrufen und diese Daten in Labels einfügen), aber es wird nicht jedes Mal aufgerufen.
%Vor%Wie rufen Sie fetchContent und setLabels jedes Mal auf, wenn der Benutzer Heuteerweiterungen öffnet?
Zu diesem Zweck sollten Sie NSWidgetProvinding
s widgetPerformUpdateWithCompletionHandler
verwenden.
Schritte:
1.- Stellen Sie sicher, dass Ihre UIViewController
implementiert NCWidgetProviding
2.- Fügen Sie die folgende Funktion hinzu:
%Vor% 3.- In Ihrem Fall verwenden Sie .NewData
.
Stellen Sie nur sicher, dass Sie benötigte Daten abrufen und Ihre Ansichten aktualisieren ( alle Daten an Ort und Stelle setzen, Etiketten, Grafiken usw. füllen ).
Vergessen Sie nicht, dass Ihre Ansicht während des Aufrufs dieser Funktion nicht sichtbar ist. iOS wird die Ansicht füllen und einen Schnappschuss davon machen.
Dann wird es angezeigt, während Sie das Benachrichtigungscenter öffnen und bis Sie die Kontrolle über Ihre App wieder erlangen.
%Vor%Also, in Ihrem Fall wäre so etwas:
Swift 2.1 & amp; & amp; Xcode 7.2 Es sieht so aus, als ob ein Fehler auftritt, wenn Sie diese Erweiterung heute mehrfach neu kompilieren. Die Lösung besteht darin, das Benachrichtigungscenter zu entfernen und es erneut hinzuzufügen. dann wird es jedes Mal aktualisiert, wenn es geöffnet ist
Tags und Links swift