Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在双组件pickerView中查找两个变量_Ios_Swift_Multidimensional Array_Uipickerview - Fatal编程技术网

Ios 在双组件pickerView中查找两个变量

Ios 在双组件pickerView中查找两个变量,ios,swift,multidimensional-array,uipickerview,Ios,Swift,Multidimensional Array,Uipickerview,我找不到任何地方解释如何从pickerView的两个组件获取信息。现在,它所做的只是将上一个移动组件中的字符串放入测试标签中。我并不真的需要他们在商店,但只是访问他们。我还想使用我注释掉的数组格式 @IBOutlet weak var itemPickerView: UIPickerView! var pickerViewArray = [["Items", "Key", "Rock"], ["Action", "Turn", "Hit"]] func numberOfComponents(

我找不到任何地方解释如何从pickerView的两个组件获取信息。现在,它所做的只是将上一个移动组件中的字符串放入测试标签中。我并不真的需要他们在商店,但只是访问他们。我还想使用我注释掉的数组格式

@IBOutlet weak var itemPickerView: UIPickerView!

var pickerViewArray = [["Items", "Key", "Rock"], ["Action", "Turn", "Hit"]]

func numberOfComponents(in pickerView: UIPickerView) -> Int {
    return pickerViewArray.count
}

func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    return pickerViewArray[component].count
}

func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
    return pickerViewArray[component][row]
}

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
    itemSelected = pickerViewArray[component][row]
    pickerOutletTest.text = itemSelected
}

@IBOutlet weak var pickerOutletTest: UILabel!

您可以使用获取所有组件中选定项的数组

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {

    let selectedItems = (0..<pickerViewArray.count).map{  pickerViewArray[$0][pickerView.selectedRow(inComponent: $0)]}
    print(selectedItems)
}

将didSelectRow方法更改为以下方法

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
     pickerOutletTest.text = pickerViewArray[0][pickerView.selectedRow(inComponent: 0)] + " " + pickerViewArray[1][pickerView.selectedRow(inComponent: 1)]
}

感谢您提供这段代码片段,它可能会提供一些即时帮助。一个恰当的解释将通过说明为什么这是一个很好的解决问题的方法来体现它的教育价值,并将使它对未来有类似但不完全相同问题的读者更有用。请编辑您的答案以添加解释,并指出适用的限制和假设。这个答案似乎更直截了当,而且有点混乱,我让它对我的理解水平起作用。我把它插入到这个picker1=pickerViewArray[0][pickerView.selectedRow(不完整部分:0)]+“”picker2=pickerViewArray[1][pickerView.selectedRow(不完整部分:1)]+“”谢谢。快乐的编码。我只想指出我在使用它时遇到的一个问题。我想将选择器视图值与其他值进行比较。我发现引号“”在我的单词后面留下了一个空格,所以我需要用它来比较“狗”。为了解决这个问题,我刚把引号括起来。我喜欢这个,一旦我完全理解了发生的事情,我可能会改成它。但现在这件事超出了我的想象。
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
     pickerOutletTest.text = pickerViewArray[0][pickerView.selectedRow(inComponent: 0)] + " " + pickerViewArray[1][pickerView.selectedRow(inComponent: 1)]
}