【问题标题】:Overriding Swiping Actions on a UITableView over UIPageController VC segues在 UIPageController VC segues 上覆盖 UITableView 上的滑动操作
【发布时间】:2015-04-05 09:44:36
【问题描述】:

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

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

}

【问题讨论】:

    标签: uitableview swift uipageviewcontroller


    【解决方案1】:

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

    override func scrollViewDidScroll(scrollView: UIScrollView) {
    }
    

    【讨论】:

    • 是的,表格占据了 VC 的宽度和几乎整个高度,但是,当我将该函数粘贴进去时,它会说,“方法不会覆盖其超类中的任何方法”。如果我用 func 删除“覆盖”,它不会改变任何东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-17
    • 1970-01-01
    相关资源
    最近更新 更多