Einzelnen Beitrag anzeigen

jensw_2000
(Gast)

n/a Beiträge
 
#5

AW: UIPageViewController bestimmte Seite

  Alt 27. Jan 2014, 16:38
Es handelt sich um den UIPageViewController von TMS. So erzeug ich das Ding:
Delphi-Quellcode:
 FPager:= TTMSFMXNativeUIPageViewController.Create(Self);
 FPager.Parent:= Self;
 FPager.Align:= TAlignLayout.alClient;

 for n:= Low(FTestViews) to High(FTestViews) do
 begin
  FTestViews[n]:= TTestView.Create(FPager);
  with FTestViews[n] do
  begin
   Parent:= FPager;
   Align:= TAlignLayout.alClient;
   Initialize;
  end;
  FPager.Pages.Add.View:= FTestViews[n];
 end;

 FPager.Initialize;
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.

Der UIPageViewController erwartet dann, dass die PageViewController DataSource den View der anzuzeigenden Seite bei Bedarf neu initialisiert.
Ich habe das auch zuerst so gemacht wie Du und habe mich gewundert, warum der PageViewController sporadisch nicht zu einer vermeidlich existierenden Seite umblättert oder die App crasht. Wenn eine Seite (View) von iOS freigegeben wurde, dann liegt in deinem "Controller Array" für diese Seite ein NIL. Bekommt der PageViewController ein NIL von der DataSource, dann heißt das für ihn "erste bzw. letzte Seite" erreicht.
Da kannst eine Weile hinterherdebuggen..
  Mit Zitat antworten Zitat