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


有一个Xcode项目,目前正在使用EzSwipeController在三个View Controller之间进行滑动(分页效果)。
在我的第一个ViewController中(作为我的要求的一部分,从我的自定义动态框架中获取了这个viewController)-


获取ViewController的代码:

    userProfile.createProfileUI(userSession!) { result in
        switch result {
        case let .Success(profileViewController):

        myDetailsVC = profileViewController  //myDetailsVc is passed to EZSwipControllerDataSource array

        default:
            break
        }
    }



另外两个ViewController在我的项目情节提要中


问题 -

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

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

这是正在发生的事情-http://recordit.co/SOJgdeYchP

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

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

请帮忙!

最佳答案

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

如果您使用的是UITableViewController,则将其替换为带有UITableView的UIViewController。然后只需将手势识别器拖到Storyboard中的视图控制器上,它将附加到UIViewController的Content View而不是UITableView。

尽管归根结底,这本质上是一种有缺陷的方法,因为只有在您的页面上没有任何元素也有滑动手势的情况下,才能滑动滑动应用程序中的页面。如果这样做,即使您编码一种解决方法以触发视图控制器中元素的手势识别器(在本例中为表格视图单元),而不是页面翻转滑动手势也会触发,这会导致不一致的用户体验。

我的建议:不要将表格视图用于这种形式。从用户感知的角度来看,在上述机械UX问题的顶部,没有任何东西在视觉上表明这是一个表格视图,而不仅仅是滚动视图,因此没有任何东西向用户表明可以使用滑动操作(删除)。改为使用滚动视图,并采取其他方法进行删除(“删除”按钮始终可见,“删除”按钮仅在用户单击“编辑”后可见)。

关于ios - Swift canEditRowAtIndexPath在UIPageViewController EZSwipeViewController中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42106560/

10-12 03:36