app加载时先显示pageViewController num的中间页
Show the middle page of pageViewController num first when app loaded
我有 3 个 ViewControllers 添加到 UIPageViewContoller 一切正常
但是我这里的代码显示第一个视图或数字 0 看起来像是从 0 到 2 的演练我希望视图控制器第一个到午餐是数字 1,这意味着中间那个
class PageController: UIPageViewController, UIPageViewControllerDataSource {
lazy var viewControllerlist: [UIViewController] = {
let storyBoard = UIStoryboard(name: "Main", bundle: nil)
let V1 = storyBoard.instantiateViewController(withIdentifier: "M")
let V2 = storyBoard.instantiateViewController(withIdentifier: "N")
let V3 = storyBoard.instantiateViewController(withIdentifier: "S")
return[V1, V2, V3]
}()
override func viewDidLoad() {
super.viewDidLoad()
self.dataSource = self
if let firstViewController = viewControllerlist.first {
self.setViewControllers([firstViewController], direction: .forward, animated: true, completion: nil)
}
}
func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? {
guard let vcIndex = viewControllerlist.index(of: viewController) else {return nil}
let previousIndex = vcIndex - 1
guard previousIndex >= 0 else {return nil}
guard viewControllerlist.count > previousIndex else {return nil}
return viewControllerlist[previousIndex]
}
func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {
guard let vcIndex = viewControllerlist.index(of: viewController) else {return nil}
let nextIndex = vcIndex + 1
guard viewControllerlist.count != nextIndex else {return nil}
guard viewControllerlist.count > nextIndex else {return nil}
return viewControllerlist[nextIndex]
}
}
试试这个
let middle = viewControllerlist[1]
self.setViewControllers([middle], direction: .forward, animated: false, completion: nil)
我有 3 个 ViewControllers 添加到 UIPageViewContoller 一切正常 但是我这里的代码显示第一个视图或数字 0 看起来像是从 0 到 2 的演练我希望视图控制器第一个到午餐是数字 1,这意味着中间那个
class PageController: UIPageViewController, UIPageViewControllerDataSource {
lazy var viewControllerlist: [UIViewController] = {
let storyBoard = UIStoryboard(name: "Main", bundle: nil)
let V1 = storyBoard.instantiateViewController(withIdentifier: "M")
let V2 = storyBoard.instantiateViewController(withIdentifier: "N")
let V3 = storyBoard.instantiateViewController(withIdentifier: "S")
return[V1, V2, V3]
}()
override func viewDidLoad() {
super.viewDidLoad()
self.dataSource = self
if let firstViewController = viewControllerlist.first {
self.setViewControllers([firstViewController], direction: .forward, animated: true, completion: nil)
}
}
func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? {
guard let vcIndex = viewControllerlist.index(of: viewController) else {return nil}
let previousIndex = vcIndex - 1
guard previousIndex >= 0 else {return nil}
guard viewControllerlist.count > previousIndex else {return nil}
return viewControllerlist[previousIndex]
}
func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {
guard let vcIndex = viewControllerlist.index(of: viewController) else {return nil}
let nextIndex = vcIndex + 1
guard viewControllerlist.count != nextIndex else {return nil}
guard viewControllerlist.count > nextIndex else {return nil}
return viewControllerlist[nextIndex]
}
}
试试这个
let middle = viewControllerlist[1]
self.setViewControllers([middle], direction: .forward, animated: false, completion: nil)