2017-05-15 2 views
-1

Wie kann ich alle ViewControllers innerhalb eines UIPageViewController in Swift entfernen?Leeren Sie einen UIPageViewController (entfernen Sie ViewControllers innerhalb)

Diese Anrufe:

pageViewController.setViewControllers(nil,....) 
pageViewController.setViewControllers([UIViewController(),....) 

beide machen meine app Absturz mit der folgenden Meldung: The number of view controllers provided (0) doesn't match the number required (1) for the requested transition

Antwort

0

A UIPageViewController "halten View-Controller" nicht im Sinne von Ihnen denken. Alles, was es tut, ist eine View-Controller zurückgegeben von seiner dataSource ... und seine dataSource ist Ihre Code.

Wenn Sie einfach tun:

[pageViewController setViewControllers:@[UIViewController.new] direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil]; 

Die wird die aktuelle „Seite“ mit einem leeren UIViewController ersetzen - aber es wird nichts anderes tun. Sie können immer noch scrollen und abhängig von Ihrer nächsten/vorherigen Logik können andere Fehler auftreten.

Was Sie tun möchten, ist "löschen" die aktuelle Seite mit dieser Zeile, aber dann auch verhindern Scrollen/Wischen. Dies geschieht oft, indem UIPageViewControllerdataSource auf Null gesetzt wird.

Verwandte Themen