Ios Eureka行显示Swift 3.0中的视图控制器和返回值

Ios Eureka行显示Swift 3.0中的视图控制器和返回值,ios,swift,swift3,eureka-forms,Ios,Swift,Swift3,Eureka Forms,我正在寻求帮助,了解如何让多值分区中的一行使用第二个Eureka表单呈现视图控制器,并将值返回给多值分区行。我已经能够获得一个常规按钮如何使用segue推送视图控制器,但我无法确定不将值返回到multivaluedssection中的行。我不确定ButtonRow方法是否支持返回值,因此我开始寻找其他解决方案。我发现的一个方法是使用一个自定义的presenter行(),但我不知道如何使它工作 在这里,我确实发现了一件事,但再一次,我不明白如何把这一切放在一起: 帮助创建简单的自定义演示者行 -

我正在寻求帮助,了解如何让多值分区中的一行使用第二个Eureka表单呈现视图控制器,并将值返回给多值分区行。我已经能够获得一个常规按钮如何使用segue推送视图控制器,但我无法确定不将值返回到multivaluedssection中的行。我不确定ButtonRow方法是否支持返回值,因此我开始寻找其他解决方案。我发现的一个方法是使用一个自定义的presenter行(),但我不知道如何使它工作

在这里,我确实发现了一件事,但再一次,我不明白如何把这一切放在一起:

帮助创建简单的自定义演示者行 -


有人能给我指出一个工作示例,或者帮助我完成这个设置吗?

如果你已经在用segue推一个新的VC,那么你可能想要实现一个协议并定义返回数据的函数

这是一个很好的导航控制器教程,最后添加了一个协议

例如:

视图一(可以是带有按钮箭头的窗体视图控制器) 视图二(推送视图控制器)
我发现的另一个选择是使用按钮箭头WithPresent,但我还是无法理解。再次添加答案,因为它已被删除。如果答案解决了OP中的问题,请接受。
class FormVC: FormViewController , FooViewControllerDelegate{
    var text : String!
    override func viewDidLoad() {
        super.viewDidLoad()

    }

    /// Delegate protocol callback implementation
    func myVCDidFinish(controller: FooViewController, text: String) {
        // Receive the data as a delegate
        self.text = text
        // In this case we also want to finish the view
        controller.navigationController?.popViewController(animated: true)
    }

    /// This represents the prepare for segue mentioned as implemented in the question
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        // Act upon the segue we want from this VC
        // The string is defined in the storyboard, so it must be exactly the same
        if segue.identifier == "mySegue"{
            // Creating the second VC instance
            let vc = segue.destination as! FooViewController
            // Since this class is now a delegate, setup the delegate
            vc.delegate = self
        }
    }
}
protocol FooViewControllerDelegate {
    func myVCDidFinish(controller: FooViewController, text: String)
}

class FooViewController: UIViewController {
    /// Data
    var text : String!

    /// Set up an optional delegate
    var delegate:FooViewControllerDelegate? = nil

    override func viewDidLoad() {
        super.viewDidLoad()
        // Init label
        self.text = "Pushed view data to pass back
    }
}