如何在 Swift4 中获取 PushRow 的值和 id_value
How to get value and id_value for PushRow in Swift4
我的项目使用 xCode 9、swift 4 和 "Eureka form library"。
情况
我有一个汽车列表,其名称和唯一 ID 是这样关联的:0 - ANY,1 - VW,7 - AUDI,20 - MAZDA
var name_cars: [String] = ["ANY","VW","AUDI","MAZDA"]
var id_cars:[Int] = [0, 1, 7, 20]
我还有一个包含 "PushRow" 和 "ButtonRow" 的表格。
单击我要打印所选汽车名称和 ID 的按钮。
我可以打印汽车的名称,但不能打印 ID。
import UIKit
import Eureka
class myPage: FormViewController {
var cars: [String] = ["ANY","VW","AUDI","MAZDA"]
var id_cars:[Int] = [0, 1,7,20]
var selected_car: String = "ANY" //default car
var selected_car_id: Int = 0 //default id car
override func viewDidLoad() {
super.viewDidLoad()
create_form()
}
func create_form(){
form
+++ Section("List")
//list
<<< PushRow<String>() {
[=12=].title = "Cars"
[=12=].options = cars
[=12=].value = "ANY"
[=12=].tag = "list_element"
[=12=].selectorTitle = "Choose car"
[=12=].onChange { [unowned self] row in
self.selected_car = row.value!
self.selected_car_id = ??? // **what should it be here in order to get the ID**
}
}
//button
<<< ButtonRow("Button1") {row in
row.title = "Get Value on Console"
row.onCellSelection{[unowned self] ButtonCellOf, row in
print ("Car selected = ",self.selected_car, " and Id_Car_Selected = ",self.selected_car_id)
}
}
}
}
首先请遵守class名称以大写字母开头,变量名是lowerCamelCased而不是[=的命名规则25=].
Swift 是一种面向对象的语言。而不是两个单独的数组使用自定义结构 Car
.
import UIKit
import Eureka
struct Car : Equatable {
let name : String
let id : Int
}
推送行声明为 PushRow<Car>()
并且 属性 displayValueFor
填充了名称
class MyPage: FormViewController {
let cars = [Car(name: "ANY", id: 0), Car(name: "VW", id: 1), Car(name: "AUDI", id: 7), Car(name: "MAZDA", id: 20)]
var selectedCar : Car!
override func viewDidLoad() {
super.viewDidLoad()
selectedCar = cars[0]
createForm()
}
func createForm() {
form
+++ Section("List")
//list
<<< PushRow<Car>() {
[=11=].title = "Cars"
[=11=].options = cars
[=11=].value = selectedCar
[=11=].displayValueFor = {
guard let car = [=11=] else { return nil }
return car.name
}
[=11=].tag = "list_element"
[=11=].selectorTitle = "Choose car"
[=11=].onChange { [unowned self] row in
self.selectedCar = row.value!
}
}
//button
<<< ButtonRow("Button1") {row in
row.title = "Get Value on Console"
row.onCellSelection{[unowned self] ButtonCellOf, row in
print ("Car selected = ", self.selectedCar.name, " and Id_Car_Selected = ", self.selectedCar.id)
}
}
}
}
我的项目使用 xCode 9、swift 4 和 "Eureka form library"。
情况
我有一个汽车列表,其名称和唯一 ID 是这样关联的:0 - ANY,1 - VW,7 - AUDI,20 - MAZDA
var name_cars: [String] = ["ANY","VW","AUDI","MAZDA"]
var id_cars:[Int] = [0, 1, 7, 20]
我还有一个包含 "PushRow" 和 "ButtonRow" 的表格。 单击我要打印所选汽车名称和 ID 的按钮。 我可以打印汽车的名称,但不能打印 ID。
import UIKit
import Eureka
class myPage: FormViewController {
var cars: [String] = ["ANY","VW","AUDI","MAZDA"]
var id_cars:[Int] = [0, 1,7,20]
var selected_car: String = "ANY" //default car
var selected_car_id: Int = 0 //default id car
override func viewDidLoad() {
super.viewDidLoad()
create_form()
}
func create_form(){
form
+++ Section("List")
//list
<<< PushRow<String>() {
[=12=].title = "Cars"
[=12=].options = cars
[=12=].value = "ANY"
[=12=].tag = "list_element"
[=12=].selectorTitle = "Choose car"
[=12=].onChange { [unowned self] row in
self.selected_car = row.value!
self.selected_car_id = ??? // **what should it be here in order to get the ID**
}
}
//button
<<< ButtonRow("Button1") {row in
row.title = "Get Value on Console"
row.onCellSelection{[unowned self] ButtonCellOf, row in
print ("Car selected = ",self.selected_car, " and Id_Car_Selected = ",self.selected_car_id)
}
}
}
}
首先请遵守class名称以大写字母开头,变量名是lowerCamelCased而不是[=的命名规则25=].
Swift 是一种面向对象的语言。而不是两个单独的数组使用自定义结构 Car
.
import UIKit
import Eureka
struct Car : Equatable {
let name : String
let id : Int
}
推送行声明为 PushRow<Car>()
并且 属性 displayValueFor
填充了名称
class MyPage: FormViewController {
let cars = [Car(name: "ANY", id: 0), Car(name: "VW", id: 1), Car(name: "AUDI", id: 7), Car(name: "MAZDA", id: 20)]
var selectedCar : Car!
override func viewDidLoad() {
super.viewDidLoad()
selectedCar = cars[0]
createForm()
}
func createForm() {
form
+++ Section("List")
//list
<<< PushRow<Car>() {
[=11=].title = "Cars"
[=11=].options = cars
[=11=].value = selectedCar
[=11=].displayValueFor = {
guard let car = [=11=] else { return nil }
return car.name
}
[=11=].tag = "list_element"
[=11=].selectorTitle = "Choose car"
[=11=].onChange { [unowned self] row in
self.selectedCar = row.value!
}
}
//button
<<< ButtonRow("Button1") {row in
row.title = "Get Value on Console"
row.onCellSelection{[unowned self] ButtonCellOf, row in
print ("Car selected = ", self.selectedCar.name, " and Id_Car_Selected = ", self.selectedCar.id)
}
}
}
}