Eureka:如何在没有Segue的情况下从PushRow推送VC

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

我正在使用Eureka进行settingsVC,我无法从pushRow推送newVC。请注意,我不使用故事板

我的设置相对简单,我的newVC是一个简单的UIViewController,带有一些uitextfields和标签。因为我不使用故事板,我似乎无法使用performSegues和$0.presentationMode = .segueName(segueName: "RowsExampleViewControllerSegue", onDismiss: nil)

我也回顾了这个post,但这篇文章对我的申请来说相对较远。

我的实施到目前为止:

class AccountsViewController: FormViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        form +++ Section("Profile")

            <<< PushRow<String>() { row in
                row.title = "Edit phone number"
                row.value = "+61 12345678"
                }.onCellSelection({ (cell, row) in
self.navigationController?.pushViewController(ChangePhoneNumberViewController(), animated: true)
            })

上述方法将VC推送两次。

我想要采用pushRow的原因是因为我希望它采用pushRow美学外观,就像所附的图像一样。我也考虑过探索ButtonRow但UI / UX却不对。继续前进我还需要使用协议将新的“phoneNumber”带到AccountsViewController。

enter image description here

编辑:

尝试以下代码但生成错误消息。 enter image description here

swift eureka-forms
2个回答
-1
投票

我遇到了同样的错误,您可以尝试将返回类型以及参数标签builder包含在回调中:

row.presentationMode = PresentationMode.show(
                controllerProvider: ControllerProvider.callback(builder: { () -> UIViewController in
                    return AcknowListViewController()
                }),
                onDismiss: nil)

0
投票

我想你只需要像这样设置演示模式:

presentationMode = PresentationMode.show(
    controllerProvider: ControllerProvider.callback(
        {return ChangePhoneNumberViewController()}
    ), onDismiss: nil)

ControllerProvider.callback允许您通过从闭包中返回一个VC来提供VC,而不是从nib文件或故事板中返回。

© www.soinside.com 2019 - 2024. All rights reserved.