Swift canEditRowAtIndexPath无法在UIPageViewController中工作EZSwipeViewController

时间:2017-02-08 06:55:13

标签: ios swift uitableview uipageviewcontroller ezswipecontroller

我有以下方案,需要帮助解决方案中的棘手情况

  1. 目前有一个Xcode项目正在使用EzSwipeController进行滑动(分页效果)。

  2. 在我的第一个ViewController中(此viewController是从我的自定义动态框架中获取的,作为我的要求的一部分) -

  3. 获取ViewController的代码:

        userProfile.createProfileUI(userSession!) { result in
            switch result {
            case let .Success(profileViewController):
    
            myDetailsVC = profileViewController  //myDetailsVc is passed to EZSwipControllerDataSource array
    
            default:
                break
            }
        }
    
    1. 另外两个ViewControllers在我的项目故事板中
    2. 问题 -

      在第一个ViewController中,有一个tableView,为少数单元格(电话号码)启用了canEditRowAtIndexPath。

      因此,当我尝试滑动行时,EZSwipeController首先响应 因此,我无法编辑该行。

      以下是发生的事情 - http://recordit.co/SOJgdeYchP

      以下是应该发生的事情 - http://recordit.co/EBPSbjH31q

      我该如何处理这个问题?有没有办法在我尝试编辑行时覆盖默认的滑动控制器操作?

      请帮忙!

1 个答案:

答案 0 :(得分:0)

将滑动手势识别器附加到层次结构中的父级。

如果您正在使用UITableViewController,请将其替换为内置UITableView的UIViewController。然后将手势识别器拖到Storyboard中的视图控制器上,它将附加到UIViewController的内容视图而不是UITableView。

虽然在一天结束时,这本质上是一种有缺陷的方法,因为如果您在页面上没有任何滑动手势的元素,那么在应用中滑动翻页也是可行的。 。如果您这样做,即使您编写了一个变通方法来为视图控制器中的元素(在本例中为表格视图单元格)制作手势识别器,而不是页面翻转滑动手势,这会产生不一致的用户体验。

我的建议:完全没有使用表格视图来表示这样的表格。除了上述机械用户体验问题之外,从用户感知的角度来看,没有任何东西在视觉上表明这是一个表格视图而不仅仅是滚动视图,所以没有任何迹象表明用户滑动动作(删除)可用。改为使用滚动视图,并采用不同的方法删除(删除始终可见的按钮,删除仅在用户点击某处编辑后可见的按钮等)。