2014-09-25 16 views
7

Sono nuovo allo sviluppo di Swift e iOS e sto cercando come impostare una vista principale in cui voglio scorrere a destra per una seconda vista o sinistra per una terza vista. Quando sono nella seconda o nella terza vista, dovrebbe essere possibile tornare alla vista principale.iOS: Come faccio a scorrere tra le visualizzazioni utilizzando Swift

ho trovato diverse idee su come realizzare vista strisciare come questo: https://medium.com/swift-programming/ios-swipe-view-with-swift-44fa83a2e078

Ma il "problema" è che voglio iniziare su una vista principale con la possibilità di scorrere in entrambe le direzioni. (quindi con la soluzione sopra per iniziare sulla seconda vista)

Qualcuno sa come fare?

+0

Eventuali duplicati di [UIPageViewController e storyboard] (https://stackoverflow.com/questions/18398796/uipageviewcontroller-and-storyboard) – Fattie

risposta

3

Questo codice funziona insieme a Swift & Storyboarding (nel Controller View):

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] 
    } 

} 
Problemi correlati