2014-09-25 88 views
7

我是Swift和iOS开发的新手,我正在寻找如何设置主视图,以便在第二个视图中向右滑动或向第三个视图左移。 当我在第二个或第三个视图时,应该可以滑回主视图。iOS:我如何使用Swift在视图之间滑动

我发现了几个想法如何实现这样一个刷卡的观点: https://medium.com/swift-programming/ios-swipe-view-with-swift-44fa83a2e078

但“问题”是,我要开始与双向刷卡的可能性主视图。 (所以用上面的解决方案开始第二个视图)

有谁知道如何做到这一点?

+0

[UIPageViewController的可能的复制和故事板](https://stackoverflow.com/questions/18398796/uipageviewcontroller-and-storyboard) – Fattie 2017-05-28 12:51:01

回答

3

此代码加上斯威夫特&故事板(在视图控制器):

import UIKit 

class ViewController : UIViewController, UIPageViewControllerDataSource { 
    var myViewControllers = Array(count: 3, repeatedValue:UIViewController()) 

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) { 
     let pvc = segue.destinationViewController as UIPageViewController 

     pvc.dataSource = self 

     let storyboard = UIStoryboard(name: "Main", bundle: nil); 

     var vc0 = storyboard.instantiateViewControllerWithIdentifier("shopID") as UIViewController 
     var vc1 = storyboard.instantiateViewControllerWithIdentifier("startID") as UIViewController 
     var vc2 = storyboard.instantiateViewControllerWithIdentifier("avatarID") as UIViewController 

     self.myViewControllers = [vc0, vc1, vc2] 

     pvc.setViewControllers([myViewControllers[1]], direction:.Forward, animated:false, completion:nil) 

     println("Loaded") 
    } 

    func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? { 
     var currentIndex = find(self.myViewControllers, viewController)!+1 
     if currentIndex >= self.myViewControllers.count { 
      return nil 
     } 
     return self.myViewControllers[currentIndex] 
    } 

    func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? { 
     var currentIndex = find(self.myViewControllers, viewController)!-1 
     if currentIndex < 0 { 
      return nil 
     } 
     return self.myViewControllers[currentIndex] 
    } 

}