Я знаю, что ошибка означает, что у меня есть указатель NULL, но я не уверен, ПОЧЕМУ это так, и я предполагаю, что это должно быть что-то, что я сделал неправильно в своем коде. Мой индекс начинается с 1, потому что я хочу, чтобы он начинался в контроллере среднего представления, который является домашней страницей. Я пытаюсь заставить контроллер просмотра страницы переключаться между контроллерами просмотра, похожими на Snapchat. У меня есть следующий код:
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
}
ошибка возникает в этой строке:
self.setViewControllers([pageContentViewController!], direction: UIPageViewControllerNavigationDirection.Forward, animated: true, completion: nil) //Error here
Ошибка выглядит следующим образом: «Поток 1: EXC_BAD_ACCESS (код = 2, адрес = 0x7fff58d57ff8)
Вот моя функция viewControllerAtIndex:
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
}
Вот моя раскадровка с контроллерами представления, между которыми можно переключаться:
Любая помощь приветствуется!