Einzelnen Beitrag anzeigen

jensw_2000
(Gast)

n/a Beiträge
 
#7

AW: UIPageViewController bestimmte Seite

  Alt 27. Jan 2014, 18:43
Was vielleicht auch noch wichtig ist...
Es ist tückisch die Views für alle Seiten vorab zu initialisieren. iOS schmeißt nicht angezeigte Views weg, wenn der Speicher knapp wird oder diese länger nicht aufgerufen wurden.
Das ist gut zu wissen! Aber wenn man das nicht beim Programmstart initialisiert, wann sonst, ohne den Prorgammfluss ins Stocken zu bringen?

Wo wir schon bei Tücken sind: Ich habe schon eine Weile das Problem, dass total willkürlich manche Seiten sich nicht mit der Wisch-Geste umblättern lassen. D.h., dass dann nur noch ein Klick auf den Seitenrand möglich ist, um umzublättern. Nach einem Neustart der App kann wieder alles funktionieren, oder andere Seiten fallen aus. Ist dir das schonmal begegnet? Vllt. hängt das ja mit genau dem zusammen?
Blättert nicht zu einer vermeidlich vorhandenen Seite, GestureRecogniter nicht verbunden, NullPointerException ... Das hört sich genau nach solchen Speicherbereinigungseffekten an.


Am besten ist es, die "Seiten-Views" über die UIPageViewControllerDataSource Methoden über die UIPageViewControllerDataSource Methoden "viewControllerBeforeViewController" und "viewControllerAfterViewController" dynamisch zu laden.
Falls da zu viel zeitfressender Kram passiert, dann kann man den langsamen Teil asynchron in die "Global Queue" verlagern oder über eine "NSOperation" (falls du da herankommst) vom GUI Thread entkoppeln.

Notfalls kann man die Seiten auch nach Deiner Methode vorinitialisieren und ggf. freigegebene Views in den DataSource Methoden (viewController/Before/After/ViewController) neu aufbauen. Ob es beim Review durchgeht, wenn die App beim Starten gleich den ganzen freien iPhone RAM okkupiert weiß ich allerdings nicht
  Mit Zitat antworten Zitat