在最后一个ViewController退出UIPageViewController之后的Swift UIPageViewController

时间:2018-06-28 08:02:41

标签: ios swift uipageviewcontroller

我已经使用python创建了启动屏幕,但是在第三次(最后一个)视图之后,我想将屏幕保留到新的UIPageViewController并退出ViewController,但是仅在最后一个向左滑动之后3rd)视图。

UIPageViewController

任何帮助表示赞赏,向左滑动后我想离开import UIKit class Splash: UIPageViewController, UIPageViewControllerDelegate, UIPageViewControllerDataSource { var pageControl = UIPageControl() override func viewDidLoad() { super.viewDidLoad() dataSource = self delegate = self if let firstViewController = orderedViewControllers.first { setViewControllers([firstViewController], direction: .forward, animated: true, completion: nil) } configurePageControl() } private(set) lazy var orderedViewControllers: [UIViewController] = { return [self.newColoredViewController(Page: "S1"), self.newColoredViewController(Page: "S2"), self.newColoredViewController(Page: "S3")] }() private func newColoredViewController(Page: String) -> UIViewController { return UIStoryboard(name: "Main", bundle: nil) . instantiateViewController(withIdentifier: Page) } func configurePageControl() { pageControl = UIPageControl(frame: CGRect(x: 0,y: UIScreen.main.bounds.maxY - 50,width: UIScreen.main.bounds.width,height: 50)) self.pageControl.numberOfPages = orderedViewControllers.count self.pageControl.currentPage = 0 self.pageControl.tintColor = UIColor.white self.pageControl.pageIndicatorTintColor = UIColor.darkGray self.pageControl.currentPageIndicatorTintColor = UIColor.white self.view.addSubview(pageControl) } func pageViewController(_ pageViewController: UIPageViewController, viewControllerBefore viewController: UIViewController) -> UIViewController? { guard let viewControllerIndex = orderedViewControllers.index(of: viewController) else { return nil } let previousIndex = viewControllerIndex - 1 guard previousIndex >= 0 else { return nil } guard orderedViewControllers.count > previousIndex else { return nil } return orderedViewControllers[previousIndex] } func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? { guard let viewControllerIndex = orderedViewControllers.index(of: viewController) else { return nil } let nextIndex = viewControllerIndex + 1 let orderedViewControllersCount = orderedViewControllers.count guard orderedViewControllersCount != nextIndex else { //This is where I need to leave the UIPageViewController but cant manage to leave after swiping left return nil } guard orderedViewControllersCount > nextIndex else { return nil } return orderedViewControllers[nextIndex] } func pageViewController(_ pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [UIViewController], transitionCompleted completed: Bool) { let pageContentViewController = pageViewController.viewControllers![0] self.pageControl.currentPage = orderedViewControllers.index(of: pageContentViewController)! } func toLogin () { //Peform Segue to Login Screen let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil) let nextViewController = storyBoard.instantiateViewController(withIdentifier: "Login") as UIViewController self.present(nextViewController, animated:true, completion:nil) } } 是什么?

0 个答案:

没有答案