Wie überprüfe ich, ob die Ansicht eines bestimmten UIViewControllers aktuell sichtbar ist? [Duplikat

Mögliches Duplizieren:
Wie kann ich feststellen, ob die Ansicht von UIViewController sichtbar ist?

Ich entwickle eine App, die einen konstanten Datenstrom aus dem Netzwerk verarbeitet und dem Benutzer eine Reihe verschiedener UIViews zur Anzeige dieser Daten zur Verfügung stellt.

Wenn bestimmte Modelldaten basierend auf dem eingehenden Datenstrom aus dem Netzwerk aktualisiert werden, greife ich auf den zugehörigen UIViewController oder UITableViewController zu und zeige ihn mit -setNeedsDisplay (im Fall von UIViewController) oder -reloadData (im Fall von UITableViewController) an.

Gibt es eine Möglichkeit, zu überprüfen, ob ein bestimmtes UIView gerade angezeigt wird (und nicht nur geladen wird), sodass ich -setNeedsDisplay oder -reloadData nur durchführe, wenn der Benutzer gerade dieses UIView ansieht? Es scheint, dass das Aufrufen von -setNeedsDisplay oder reloadData in einer Ansicht, die der Benutzer derzeit nicht betrachtet, eine Verschwendung von Rechenleistung ist und die Akkulaufzeit nicht verlängert. Wenn der Benutzer schließlich zu einer Ansicht wechselt, die zuvor aktualisiert wurde, ist es sinnvoller, -setNeedsDisplay oder reloadData in -viewWillAppear auszuführen.

Vielen Dan

Antworten auf die Frage(6)

Ihre Antwort auf die Frage