Swift 用一个按钮和一个结果键链接两个选择器
我希望用户这样做:当他们从第一个选择器中选择一个项目,并在另一个选择器上选择该项目,然后单击按钮时,他们会在文本字段中得到结果。我该怎么做 我已经创建了两个选择器、文本字段和一个按钮。例如:如果用户从第一个微调器选择他们的姓名,从第二个微调器选择他们的id,当他们单击按钮时,文本视图将显示他们的电话号码 这就是我目前所做的:Swift 用一个按钮和一个结果键链接两个选择器,swift,uipickerview,Swift,Uipickerview,我希望用户这样做:当他们从第一个选择器中选择一个项目,并在另一个选择器上选择该项目,然后单击按钮时,他们会在文本字段中得到结果。我该怎么做 我已经创建了两个选择器、文本字段和一个按钮。例如:如果用户从第一个微调器选择他们的姓名,从第二个微调器选择他们的id,当他们单击按钮时,文本视图将显示他们的电话号码 这就是我目前所做的: // // ViewController.swift // test001 // // Created by Ahmed N. on 7/14/1438 AH. /
// // ViewController.swift // test001 // // Created by Ahmed N. on
7/14/1438 AH. // Copyright © 1438 Ahmed N. All rights reserved. //
import UIKit
class Viewkm: UIViewController,
UIPickerViewDataSource,UIPickerViewDelegate {
@IBOutlet weak var array1: UIPickerView!
@IBOutlet weak var array2: UIPickerView!
@IBOutlet weak var result: UITextField!
var array:NSArray = []
var array12:NSArray = []
override func viewDidLoad() {
super.viewDidLoad()
array = ["3","2","1"]
array12 = ["Nasser","meachal","Ahmed"]
// Do any additional setup after loading the view, typically from a nib.
}
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if (pickerView.tag == 1){
return array.count
}else{
return array12.count
}
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if (pickerView.tag == 1){
return "\(array[row])"
}else{
return "\(array12[row])"
}
}
public func numberOfComponents(in pickerView: UIPickerView) -> Int{
return 1
}
@IBAction func getResult(_ sender: UIButton) {
var select1 = array[array1.selectedRow(inComponent: 0)]
var select2 = array12[array2.selectedRow(inComponent: 0)]
if (select1 == "1") && (select2 = "Ahmed") {
getResult.setTitle("Telephone number...", result: .Normal)
}
}
}
****更新****
版权所有//
导入UIKit
//+++++++++++++++++++++++i gut这里是一个错误类Viewkm:
UIViewController,
UIPickerViewDataSource,UIPickerViewDelegate{
@IBOutlet weak var array1: UIPickerView!
@IBOutlet weak var array2: UIPickerView!
//this is a text failt that i want to set tge resut in
@IBOutlet weak var result: UITextField!
// i did these two
var selectedRow1 : Int
var selectedRow2 : Int
var array:NSArray = []
var array12:NSArray = []
// array fo numbers
var arrayNumbers:NSArray = []
override func viewDidLoad() {
super.viewDidLoad()
array = ["3","2","1"]
array12 = ["Nasser","meachal","Ahmed"]
arrayNumbers = ["400","500","4000"]
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if (pickerView.tag == 1){
self.selectedRow1 = row
}else{
self.selectedRow1 = row
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if (pickerView.tag == 1){
return array.count
}else{
return array12.count
}
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if (pickerView.tag == 1){
return "\(array[row])"
}else{
return "\(array12[row])"
}
}
public func numberOfComponents(in pickerView: UIPickerView) -> Int{
return 1
}
@IBAction func getResult(_ sender: UIButton) {
var select1 = array[self.selectedRow1]
var select2 = array12[self.selectedRow2]
// error syaed : binert opreater "==" cannot be applied to type "any" or "String"
if (select1 == "1") && (select2 = "Ahmed") {
//And you can show the number from array list
// ******************** error sayed : cannot call value of non-function type String
result.text("Telephone number...\(self.arrayNumber[self.selectedrow1])", result: .Normal)
}
}
}
您可以为此使用pickerview委托方法
//those two for selected pickerView rows
var selectedRow1 : Int
var selectedRow2 : Int
//this array for the numbers. You should fill this array with users number maybe.
var arrayNumbers:NSArray = []
//pickerView delegate method, the row keyword shows which row is selected
optional func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if (pickerView.tag == 1){
self.selectedRow1 = row
}else{
self.selectedRow1 = row
}
}
//your button action be like this
@IBAction func getResult(_ sender: UIButton) {
var select1 = array[self.selectedRow1]
var select2 = array12[self.selectedRow2]
//your arrray type is Any
if (String(select1) == "1") && (String(select2) = "Ahmed") {
//And you can show the number from array list
getResult.setTitle("Telephone number...\(self.arrayNumber[self.selectedrow1])", result: .Normal)
}
}
感谢您的重播…它对我不起作用。我在按钮中发现了一个错误。对此我很抱歉。我也更新了。select array[]和array12[]的包含是任意的。您应该尝试我编辑的答案。或者您应该定义数组:var array:[String]=[]var array12:[String]=[]
//those two for selected pickerView rows
var selectedRow1 : Int
var selectedRow2 : Int
//this array for the numbers. You should fill this array with users number maybe.
var arrayNumbers:NSArray = []
//pickerView delegate method, the row keyword shows which row is selected
optional func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if (pickerView.tag == 1){
self.selectedRow1 = row
}else{
self.selectedRow1 = row
}
}
//your button action be like this
@IBAction func getResult(_ sender: UIButton) {
var select1 = array[self.selectedRow1]
var select2 = array12[self.selectedRow2]
//your arrray type is Any
if (String(select1) == "1") && (String(select2) = "Ahmed") {
//And you can show the number from array list
getResult.setTitle("Telephone number...\(self.arrayNumber[self.selectedrow1])", result: .Normal)
}
}