2017-08-30 2 views
1

私はSwiftの新しいプログラミングです。私はEureka Libraryを使用してフォームを作成しようとしています。SwiftのEureka Formsから値を取得

フォームはすでに動作していますが、フォームからデータを取得できません。

私はデータを1つずつグローバル変数に格納しようとしていますが、ボタンを押したときに印刷されるようにしています。

コードは常に壊れており、私はそれを修正する方法がわかりません。

これは私のコードです:あなたはDateRowまたはTextRow変化たら、あなたの値を更新するために.onChangeを使用する必要がある、またはあなたがform.rowBy(tag: "tagName")での値に直接アクセスすることができ、あなたの時間

答えて

1

ため

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! 

    } 

感謝あなたのベースコードを使ってこの例のコードで.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. 
    } 

} 
関連する問題