ios - 从 Swift 中的 Eureka Forms 获取值

标签 ios swift swift3 eureka-forms

我是 Swift 编程新手,我正在尝试使用 Eureka 库创建一个表单。

表单已经可以工作,但我无法从表单中获取数据。

我正在尝试将数据一一存储到全局变量中,以便在按下按钮时打印。

问题是代码总是会损坏,而且我不知道如何纠正它。

这是我的代码:

import UIKit
import Eureka

class ViewController: FormViewController
{
    //Creating Global Variables
    var name: String = ""
    var data: Date? = nil

    @IBAction func testebutton(_ sender: Any)
    {
        print(name)
        print(data)
    }

    override func viewDidLoad()
    {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        form +++ Section()
            <<< TextRow()
                {
                    row in
                row.title = "Name"
                row.tag = "name"
            }
            <<< DateRow()
                {
                $0.title = "Birthdate"
                $0.value = Date()
                $0.tag = "date"
                }

        //Gets value from form
        let row: TextRow? = form.rowBy(tag: "name")
        let nome = row?.value

        name = nome!

    }

感谢您的宝贵时间

最佳答案

一旦 DateRow 或 TextRow 更改,您需要使用 .onChange 更新您的值,或者您可以使用 form.rowBy(tag: "tagName")< 直接访问该值 并转换为正确的行类型,您可以使用您的基本代码在此示例代码中访问 .value 我使用这两种方法

import UIKit
import Eureka

class GettingDataViewController: FormViewController {

    //Creating Global Variables
    var name: String = ""
    var data: Date? = nil

    @IBAction func testebutton(_ sender: Any)
    {
        print(name)
        print(data)
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
        form +++ Section()
            <<< TextRow()
                {
                    row in
                    row.title = "Name"
                    row.tag = "name"
                }.onChange({ (row) in
                    self.name = row.value != nil ? row.value! : "" //updating the value on change
                })
            <<< DateRow()
                {
                    $0.title = "Birthdate"
                    $0.value = Date()
                    $0.tag = "date"
                }.onChange({ (row) in
                    self.data = row.value  //updating the value on change
                })
            <<< ButtonRow(tag: "test").onCellSelection({ (cell, row) in
                print(self.name)
                print(self.data)

                //Direct access to value
                if let textRow = self.form.rowBy(tag: "name") as? TextRow
                {
                    print(textRow.value)
                }

                if let dateRow = self.form.rowBy(tag: "date") as? DateRow
                {
                    print(dateRow.value)
                }

            })

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}

关于ios - 从 Swift 中的 Eureka Forms 获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45951503/

相关文章:

ios - 如何在 UIWebview 中包含自定义字体?

iOS:如何部分更改文本颜色

ios - 如何声明一个全局变量以在应用程序的主视图和反面 View 中使用?苹果手机

ios - 重用导航栏按钮

string - swift 如何删除可选的字符串字符

ios - "project.app"需要-Onone Swift 优化级别来使用预览

swift - Xcode 8 beta 6 : main. swift 无法编译

ios - 旋转2个盒子相交

ios - 包含 NSTextAttachment 的 NSAttributedString 可以存储(或恢复)吗?

ios - 如何在 SpriteKit 中向游戏添加音乐