나는 오류가 NULL 포인터를 가지고 있다는 것을 알고 있지만 그 이유는 확실하지 않으며 그것이 내 코드에서 뭔가 잘못되었다고 가정합니다. 내 인덱스는 홈 페이지 인 중간보기 컨트롤러에서 시작하기 때문에 1부터 시작합니다. 스냅인과 비슷한보기 컨트롤러 사이를 스 와이프하기 위해 페이지보기 컨트롤러를 만들려고합니다. 다음 코드를 가지고 오류가이 라인에서 발생UIPageViewController 잘못된 액세스 오류
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)
여기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
}
이보기 controlle 내 스토리 보드입니다 :
여기 내 viewControllerAtIndex 기능입니다 모든 모든 도움을 크게 감사
: RS 사이에 슬쩍!
귀하의보기 컨트롤러가 색인 기능에 있고 색인이 0이 아닌 1에서 시작하는 이유는 무엇입니까? – WMios
@WMios 방금 편집을 추가했습니다 – evanhaus
실제 오류가있는 스택 추적을 포함 할 수도 있습니까? – WMios