Swift TransitionStyle更改为时应用程序崩溃。滚动
我正在尝试将PageViewController的转换样式从.PageCurl更改为.Scroll。该应用程序目前在.PageCurl上运行良好,但在运行时设置为.Scroll时,当您尝试从MenuViewController向右滑动时会崩溃 在设置transitionStyle的RootViewController.swift中: 我得到的错误是0 swift\u dynamicclasses。错误指向的断点位于ModelController.swift中: 根据Xcode,错误的具体行是Swift TransitionStyle更改为时应用程序崩溃。滚动,swift,uipageviewcontroller,Swift,Uipageviewcontroller,我正在尝试将PageViewController的转换样式从.PageCurl更改为.Scroll。该应用程序目前在.PageCurl上运行良好,但在运行时设置为.Scroll时,当您尝试从MenuViewController向右滑动时会崩溃 在设置transitionStyle的RootViewController.swift中: 我得到的错误是0 swift\u dynamicclasses。错误指向的断点位于ModelController.swift中: 根据Xcode,错误的具体行是 v
var index = self.indexOfViewController(viewController as DataViewController)
是否需要对订单使用进行其他更改。滚动?viewController可能不是DataViewController,甚至可能为零。您最初在哪里设置UIPageViewController的viewController?是的,您应该在viewController中打印并确认它是什么。我在这里没有看到任何独特的。滚动。index=experiments.count-1,后跟index-似乎很奇怪,您真的想将其设置为experiments.count-2吗?但似乎没有。与滚动相关。Matthias,我使用viewControllerAtIndex函数设置了viewController。如果self.experiments.count==0 | | index>=self.experiments.count{return nil}让dataViewController=storyboard.InstanceEviewController将dataViewController标识为dataViewController dataViewController.experiment=self.experiments[index]为?NSDictionary return dataViewControllerRob,index=experiments.count-1用于将索引设置为数组的开头,以便它循环返回并重新开始。刚意识到这是不必要的,就把它拿走了。仍然崩溃。如何访问当前的viewController以便打印它?@MatthiasBauch和Rob,另一个数据点:该应用程序是Xcode基于页面的应用程序模板的一个轻度定制版本。当我第一次开始使用它时,我能够很容易地在.Scroll和.PageView之间切换,但在某个时候我引入了这个问题。
func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {
if fromMenu == true {
var index = self.indexOfViewController(viewController as DataViewController)
if (index == NSNotFound) {
return nil
}
if (index == 0) {
index = experiments.count - 1
}
index--
return self.viewControllerAtIndex(index, storyboard: viewController.storyboard!)
} else {
println("fromMenu is \(fromMenu)")
fromMenu = true
return self.viewControllerAtIndex(0, storyboard: viewController.storyboard!)
}
}
var index = self.indexOfViewController(viewController as DataViewController)