Ich weiß, dass der Fehler bedeutet, dass ich einen NULL-Zeiger habe, aber ich bin mir nicht sicher, WARUM das ist, und ich nehme an, dass es etwas sein muss, das ich in meinem Code falsch gemacht habe. Mein Index beginnt bei 1, weil ich möchte, dass er im Middle View-Controller startet, der die Startseite ist. Ich versuche, einen Seitenaufruf-Controller zwischen Ansichtencontrollern zu schalten, die dem Snapchat ähneln. Ich habe den folgenden Code:UIPageViewController schlechter Zugriffsfehler
import UIKit
class PageViewController: UIPageViewController, UIPageViewControllerDelegate, UIPageViewControllerDataSource {
var viewControllersArray = [UIViewController]()
var pageIndex: Int?
let selectedIndex = 1
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.clearColor()
let vc1 = storyboard?.instantiateViewControllerWithIdentifier("ProfileView") as! ProfileViewController
let vc2 = storyboard?.instantiateViewControllerWithIdentifier("HomeView") as! HomeViewController
let vc3 = storyboard?.instantiateViewControllerWithIdentifier("MatchesView") as! MatchViewController
viewControllersArray.append(vc1)
viewControllersArray.append(vc2)
viewControllersArray.append(vc3)
self.dataSource = self
let pageContentViewController = self.viewControllerAtIndex(selectedIndex)
self.setViewControllers([pageContentViewController!], direction: UIPageViewControllerNavigationDirection.Forward, animated: true, completion: nil) //Error here
}
die Fehler an dieser Linie auftreten:
self.setViewControllers([pageContentViewController!], direction: UIPageViewControllerNavigationDirection.Forward, animated: true, completion: nil) //Error here
Der Fehler ist wie folgt: „Thread 1: EXC_BAD_ACCESS (Code = 2, Adresse = 0x7fff58d57ff8)
Hier ist meine viewControllerAtIndex Funktion:
func viewControllerAtIndex(index : Int) -> UIViewController? {
if((self.viewControllersArray.count == 0) || (index >= self.viewControllersArray.count)) {
return nil
}
let pageContentViewController = self.storyboard?.instantiateViewControllerWithIdentifier("PageViewController") as! PageViewController
pageContentViewController.pageIndex = index
return pageContentViewController
}
Hier mein Storyboard mit dem Blick Controlle ist rs Swipe zwischen:
Jedwedes Hilfe sehr geschätzt wird!
Wo ist Ihr View-Controller bei der Index-Funktion und warum beginnt der Index bei 1 und nicht bei 0? – WMios
@WMios Ich habe gerade die Änderungen hinzugefügt – evanhaus
Können Sie auch die Stack-Trace mit dem tatsächlichen Fehler enthalten? – WMios