Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在UIPageController VC段上覆盖UITableView上的滑动操作_Uitableview_Swift_Uipageviewcontroller - Fatal编程技术网

在UIPageController VC段上覆盖UITableView上的滑动操作

在UIPageController VC段上覆盖UITableView上的滑动操作,uitableview,swift,uipageviewcontroller,Uitableview,Swift,Uipageviewcontroller,在swift中,我目前正在使用UIPageViewController对我的VC进行分段,当你向左或向右滑动时,它会改变VC。在我的一个视图控制器中,存在一个表视图,如果您在该行上滑动,则有一些选项。我的问题是,当我在表的行上滑动时,它会更改为我的视图控制器。我想覆盖它,以便在VC滑动之前显示行操作。我下面的代码是第一个VC。PS:如果您需要我的TableView代码,请发表评论!谢谢 import UIKit class ViewController: UIViewController,

swift中,我目前正在使用
UIPageViewController
对我的VC进行分段,当你向左或向右滑动时,它会改变VC。在我的一个
视图控制器中,存在一个表视图,如果您在该行上滑动,则有一些选项。我的问题是,当我在表的行上滑动时,它会更改为我的视图控制器。我想覆盖它,以便在VC滑动之前显示行操作。我下面的代码是第一个VC。PS:如果您需要我的TableView代码,请发表评论!谢谢

import UIKit


class ViewController: UIViewController, UIPageViewControllerDataSource {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.


    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.

    }

    var myViewControllers = Array(count: 4, 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("FirstViewController") as UIViewController
        var vc1 = storyboard.instantiateViewControllerWithIdentifier("SecondViewController") as UIViewController
        var vc2 = storyboard.instantiateViewControllerWithIdentifier("ThirdViewController") as UIViewController
        var vc3 = storyboard.instantiateViewControllerWithIdentifier("FourthViewController") as UIViewController

        self.myViewControllers = [vc0, vc1, vc2, vc3]

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

}
导入UIKit
类ViewController:UIViewController、UIPageViewControllerDataSource{
重写func viewDidLoad(){
super.viewDidLoad()
//加载视图后,通常从nib执行任何其他设置。
}
重写函数didReceiveMemoryWarning(){
超级。我收到了记忆警告()
//处置所有可以重新创建的资源。
}
var myViewControllers=Array(计数:4,repeatedValue:UIViewController())
重写func prepareforsgue(segue:UIStoryboardSegue,sender:AnyObject!){
将pvc=segue.destinationViewController设为UIPageViewController
pvc.dataSource=self
让故事板=UIStoryboard(名称:“Main”,捆绑包:nil);
var vc0=情节提要。实例化作为UIViewController的EviewController标识符(“FirstViewController”)
var vc1=情节提要。实例化eviewcontrollerwhiteIdentifier(“SecondViewController”)作为UIViewController
var vc2=情节提要。实例化作为UIViewController的EViewController标识符(“第三个ViewController”)
var vc3=情节提要。实例化eviewcontrollerwhiteIdentifier(“第四视图控制器”)作为UIViewController
self.myViewController=[vc0、vc1、vc2、vc3]
pvc.setViewController([MyViewController[1]],方向:。正向,动画:false,完成:nil)
println(“已加载”)
}
func pageViewController(pageViewController:UIPageViewController,viewControllerAfterViewController:UIViewController)->UIViewController{
var currentIndex=find(self.myViewControllers,viewController)!+1
如果currentIndex>=self.MyViewController.count{
归零
}
返回self.MyViewController[currentIndex]
}
func pageViewController(pageViewController:UIPageViewController,viewController预览控制器viewController:UIViewController)->UIViewController{
var currentIndex=find(self.myViewControllers,viewController)!-1
如果当前索引<0{
归零
}
返回self.MyViewController[currentIndex]
}
}

tableView是否占用了视图中的所有空间?让我们试试看

override func scrollViewDidScroll(scrollView: UIScrollView) {
}

是的,表格占据了VC的宽度和几乎全部高度,尽管当我粘贴该函数时,它说,“方法不会覆盖其超类中的任何方法”。如果我用func删除“override”,它不会改变任何东西。