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

问题描述 投票:0回答:1

我正在使用SplitViewController并在详细页面上(设置为“定义上下文”),用户可以在导航栏中选择“+”,并使用segue呈现下一个视图控制器“模态地在当前上下文中”。在那个视图控制器上,我正在使用Eureka,我想要使用的其中一行是PushRow。我遇到的问题是当我在PushRow上选择一个选项时,视图(选择Eureka生成的选项表)永远不会关闭。选项列表保持全屏。我可以看到PushRow.onChange被调用并且它具有正确的值。由于某种原因,最顶层的视图不会关闭。

我挖得更深,似乎我需要修改PushRow presentationMode为“presentModally”,因为我是从一个模态呈现它。但是,我不确定要为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()
        })
    }
}
swift eureka-forms
1个回答
1
投票

我最终想出了一个解决方案,所以我将它发布在这里以希望帮助其他人。在上面的示例中,使用此代码替换presentationMode和onChange。请注意,如果除了String之外在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()
})
© www.soinside.com 2019 - 2024. All rights reserved.