2014-09-25 16 views
7

Tôi mới sử dụng Swift và iOS và đang tìm cách thiết lập chế độ xem chính mà tôi muốn vuốt sang phải để xem lần thứ hai hoặc sang trái cho chế độ xem thứ ba. Khi tôi ở chế độ xem thứ hai hoặc thứ ba, bạn có thể vuốt trở lại chế độ xem chính.iOS: Làm cách nào để vuốt giữa các chế độ xem bằng cách sử dụng Swift

Tôi tìm thấy một số ý tưởng làm thế nào để nhận ra cái nhìn swipe như thế này: https://medium.com/swift-programming/ios-swipe-view-with-swift-44fa83a2e078

Nhưng "vấn đề" là, mà tôi muốn bắt đầu trên một giao diện chính với khả năng swipe theo cả hai hướng. (do đó, với giải pháp ở trên để bắt đầu ở chế độ xem thứ hai)

Có ai biết cách thực hiện việc này không?

+0

có thể trùng lặp của [UIPageViewController và bảng phân cảnh] (https://stackoverflow.com/questions/18398796/uipageviewcontroller-and-storyboard) – Fattie

Trả lời

3

Mã này này làm việc cùng với Swift & Viết kịch bản (trong View Controller):

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

} 
Các vấn đề liên quan