Swift 模式上的Eureka PushRow,选择项目后视图不会关闭

Swift 模式上的Eureka PushRow,选择项目后视图不会关闭,swift,eureka-forms,Swift,Eureka Forms,我使用的是SplitViewController,在设置为“定义上下文”的“详细信息”页面上,用户可以在导航栏中选择+并使用segue在当前上下文上以模式显示下一个视图控制器。在该视图控制器上,我正在使用Eureka,我要使用的行之一是PushRow。我遇到的问题是,当我在PushRow上选择一个选项时,Eureka生成的选项视图表永远不会关闭。选项列表保持全屏。我可以看到调用了PushRow.onChange,它具有正确的值。由于某些原因,最上面的视图无法关闭 我更深入地挖掘,似乎我需要将Pu

我使用的是SplitViewController,在设置为“定义上下文”的“详细信息”页面上,用户可以在导航栏中选择+并使用segue在当前上下文上以模式显示下一个视图控制器。在该视图控制器上,我正在使用Eureka,我要使用的行之一是PushRow。我遇到的问题是,当我在PushRow上选择一个选项时,Eureka生成的选项视图表永远不会关闭。选项列表保持全屏。我可以看到调用了PushRow.onChange,它具有正确的值。由于某些原因,最上面的视图无法关闭

我更深入地挖掘,似乎我需要将PushRow presentationMode修改为PresentModly,因为我是从一个模态来呈现它的。但是,我不确定为controllerProvider设置什么。这条路对吗?如果是,正确的语法是什么?我还试着在onChange中重新加载,但没有什么不同

private func getGroupPushRow() -> PushRow<String> {
    return PushRow<String>() {
        $0.title = "Group"
        $0.selectorTitle = "What is the Group?"
        $0.noValueDisplayText = "Select a Group..."
        $0.options = self.getGroups()
        $0.presentationMode = PresentationMode.presentModally(controllerProvider: ControllerProvider<VCType>, onDismiss: { () in

        })
        $0.onChange({ (row) in
            print("in onchange \(row.value)")
          //  row.reload()
          //  self.tableView.reloadData()
        })
    }
}

我最终想出了一个解决办法,所以我把它贴在这里,希望能帮助其他人。在上面的例子中,用以下代码替换presentationMode&onChange。请注意,如果在PushRow中使用的是字符串以外的其他对象,则PushSelectorCell中的类型应改为该类型

$0.presentationMode = PresentationMode.presentModally(
      controllerProvider: ControllerProvider.callback {
          return SelectorViewController<SelectorRow<PushSelectorCell<String>>> { _ in }
      },
      onDismiss: { vc in
          vc.dismiss(animated: true)
    })
$0.onChange({ (row) in
    row.reload()
})

我最终想出了一个解决办法,所以我把它贴在这里,希望能帮助其他人。在上面的例子中,用以下代码替换presentationMode&onChange。请注意,如果在PushRow中使用的是字符串以外的其他对象,则PushSelectorCell中的类型应改为该类型

$0.presentationMode = PresentationMode.presentModally(
      controllerProvider: ControllerProvider.callback {
          return SelectorViewController<SelectorRow<PushSelectorCell<String>>> { _ in }
      },
      onDismiss: { vc in
          vc.dismiss(animated: true)
    })
$0.onChange({ (row) in
    row.reload()
})

谢谢你,凯特。我在寻找那个特别的解决方案。谢谢凯特。我在寻找那个特殊的解决方案。