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

时间:2017-11-05 08:54:52

标签: swift eureka-forms

我正在使用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

1 个答案:

答案 0 :(得分:0)

我认为你只需要设置这样的演示模式:

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

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