iOS:如何使用 Swift 在视图之间滑动

Posted

技术标签:

【中文标题】iOS:如何使用 Swift 在视图之间滑动【英文标题】:iOS: How do I swipe between views using Swift 【发布时间】:2014-09-25 08:18:03 【问题描述】:

我是 Swift 和 ios 开发的新手,我正在研究如何设置一个主视图,我希望向右滑动以获得第二个视图或向左滑动以获得第三个视图。 当我在第二个或第三个视图中时,应该可以滑回主视图。

我发现了几个想法如何实现这样的滑动视图: https://medium.com/swift-programming/ios-swipe-view-with-swift-44fa83a2e078

但“问题”是,我想从一个可以双向滑动的主视图开始。 (所以用上面的解决方案从第二个视图开始)

有人知道怎么做吗?

【问题讨论】:

UIPageViewController and storyboard的可能重复 【参考方案1】:

就这么简单……

***.com/a/26024779/294884

【讨论】:

【参考方案2】:

此代码与 Swift 和 Storyboard 一起使用(在视图控制器中):

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]
    


【讨论】:

以上是关于iOS:如何使用 Swift 在视图之间滑动的主要内容,如果未能解决你的问题,请参考以下文章

(Swift) 需要帮助在视图控制器之间滑动

如何在 Swift 中创建像指南针一样的“滑动视图”?

如何使用 Swift 在 iOS 上的 UICollecetionView 中设置两张照片之间的间隔?

如何在 Swift 2.0 中滑动删除核心数据表视图

如何使用 Swift 委托模式在视图之间传输数据

在 Swift 中创建滑动转场