Swift 用一个按钮和一个结果键链接两个选择器

Swift 用一个按钮和一个结果键链接两个选择器,swift,uipickerview,Swift,Uipickerview,我希望用户这样做:当他们从第一个选择器中选择一个项目,并在另一个选择器上选择该项目,然后单击按钮时,他们会在文本字段中得到结果。我该怎么做 我已经创建了两个选择器、文本字段和一个按钮。例如:如果用户从第一个微调器选择他们的姓名,从第二个微调器选择他们的id,当他们单击按钮时,文本视图将显示他们的电话号码 这就是我目前所做的: // // ViewController.swift // test001 // // Created by Ahmed N. on 7/14/1438 AH. /

我希望用户这样做:当他们从第一个选择器中选择一个项目,并在另一个选择器上选择该项目,然后单击按钮时,他们会在文本字段中得到结果。我该怎么做

我已经创建了两个选择器、文本字段和一个按钮。例如:如果用户从第一个微调器选择他们的姓名,从第二个微调器选择他们的id,当他们单击按钮时,文本视图将显示他们的电话号码

这就是我目前所做的:

// //  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)
            }
    }