我在UIButton
的{{1}}中有一个View Controller
(也是通过编程创建的)。我想在同一页面视图控制器中切换到另一个Page View Controller
。这是我尝试使用的:
View Controller
这种明了的方法是行不通的(我正在尝试切换到proposalPage)。我尝试过的另一种方法是:
@objc func myOpinionAction(_ sender:UIButton!)
{
PageViewController().setViewControllers([suggestionPage()], direction: UIPageViewController.NavigationDirection.forward, animated: true)
}
这给了我线程1:我的信号SIGABRT 错误:
PageViewController().transition(from: PageViewController().viewControllers![0], to: PageViewController().viewControllers![2], duration: 0.3, options: UIView.AnimationOptions.curveEaseInOut, animations: nil, completion: nil)
我的class AppDelegate: UIResponder, UIApplicationDelegate {
中的第一行代码,我认为这是由于期权问题的解决?
有谁知道我是错误地使用了函数还是有更好的方法呢?
答案 0 :(得分:0)
尝试一下
func forward() {
if currentPageIndex < totalPageIndex {
pageController?.setViewControllers([viewControllerAtIndex(index: currentPageIndex + 1)], direction: .forward, animated: true, completion: nil)
}
}
func backward() {
if currentPageIndex > 0 {
pageController?.setViewControllers([viewControllerAtIndex(index: currentPageIndex - 1)], direction: .reverse, animated: true, completion: nil)
}
}
答案 1 :(得分:0)
按以下说明更改代码。在编写PageViewController()
时,这意味着您正在创建类型为PageViewController
的新对象,并且试图在该对象实例上设置页面,该页面未添加到视图中。
@objc func myOpinionAction(_ sender:UIButton!)
{
pageViewController.setViewControllers([suggestionPage()], direction: UIPageViewController.NavigationDirection.forward, animated: true)
}