2014-09-25 12 views
7

का उपयोग करके दृश्यों के बीच मैं कैसे स्वाइप करूं? मैं स्विफ्ट और आईओएस विकास के लिए नया हूं, और मैं देख रहा हूं कि एक मुख्य दृश्य कैसे स्थापित करें जहां मैं दूसरे दृश्य के लिए दाएं स्वाइप करना चाहता हूं या तीसरे दृश्य के लिए बाएं। जब मैं दूसरे या तीसरे दृश्य में हूं, तो मुख्य दृश्य पर वापस स्वाइप करना संभव होना चाहिए।आईओएस: स्विफ्ट

मैं कई विचारों पाया कैसे इस तरह कड़ी चोट दृश्य साकार करने के लिए: https://medium.com/swift-programming/ios-swipe-view-with-swift-44fa83a2e078

लेकिन "समस्या", है कि मैं संभावना दोनों दिशाओं में स्वाइप करने के लिए के साथ एक मुख्य दृश्य पर शुरू करना चाहते हैं। (इसलिए दूसरे दृश्य पर शुरू करने के लिए उपरोक्त समाधान के साथ)

क्या कोई यह जानता है कि यह कैसे करें?

+0

[UIPageViewController की संभावित डुप्लिकेट और स्टोरीबोर्ड] (https://stackoverflow.com/questions/18398796/uipageviewcontroller-and-storyboard) – Fattie

उत्तर

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

} 
संबंधित मुद्दे