Wir haben ein today-Widget, das abhängig vom Datensatz in der entsprechenden App maximal 6 Schaltflächen anzeigt. Diese Daten werden mit App-Gruppen geteilt. Wenn mindestens eine Schaltfläche konfiguriert ist, wird sie wie in der Abbildung oben angezeigt. Wenn der Benutzer nicht angemeldet ist oder keine Tasten konfiguriert sind, wird eine Meldung wie in der Abbildung unten angezeigt.
Nach einigen Stunden (zwischen 4 und 7), in denen die App nicht geöffnet wurde, kehrt das Widget zur Ansicht 'Keine Schaltflächen konfiguriert' zurück.
Wie die Daten aus der App-Gruppe geladen werden, verwenden Sie den Code wie unten gezeigt. ( Giste für vollständigen Code ) Wie ich es geschrieben habe, kann die Ansicht "Keine Schaltflächen konfiguriert" nur so aussehen gezeigt wird, wenn das Array buttons
tatsächlich existiert, aber eine Länge von Null hat.
Ich habe erwartet, dass so etwas wie ein Cache-Clearing oder ein Hintergrunddienst gestoppt wird, aber soweit ich sehen kann, sollten Ausnahmen früher erkannt werden:
userDefaults
gleich Null sein, daher sollte die Ansicht 'Nicht eingeloggt' angezeigt werden. buttons
gleich Null sein und sollte wieder die 'Nicht eingeloggte Ansicht' anzeigen Wenn man bedenkt, dass die App nichts im Hintergrund tut, kann die App selbst die Schaltflächen nicht ändern.
Ich habe versucht, dies zu reproduzieren, während der Debugger angeschlossen ist, aber das Problem wird nicht reproduziert.
Hat jemand überhaupt die geringste Idee, wie man dieses Problem beheben oder mit dem Debuggen beginnen kann?
Relevante Dateien:
Relevanter Code:
%Vor% Today Extension Controller
ist ein UIViewController
und folgt somit dem gleichen Lebenszyklus wie der UIViewController
. Daher wird die Lebenszyklusmethode viewDidLoad()
jedes Mal aufgerufen, wenn widget
geladen wird.
Auch widgetPerformUpdateWithCompletionHandler
wird aufgerufen:
Also rufen Sie loadData()
nicht nur in widgetPerformUpdateWithCompletionHandler
auf, sondern rufen Sie auch von viewDidLoad()
auf.
Wo haben Sie auch den Code geschrieben, um UIButtons
aus superview hinzuzufügen / zu entfernen und "No buttons configured" in Ihrem Code anzuzeigen?
Tags und Links ios swift swift2 today-extension ios-app-group