PickerViewを分けてそれぞれの設定を行うことで解決
Swift
1コード
2
3 //piclerView1の設定
4 pickerView1.delegate = self
5 pickerView1.dataSource = self
6 pickerView1.showsSelectionIndicator = true
7 pickerView1.tag = 1
8
9
10 let toolbar1 = UIToolbar(frame: CGRectMake(0, 0, 0, 35))
11 let doneItem1 = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(ShousaiViewController.done))
12 let cancelItem1 = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(ShousaiViewController.cancel))
13 toolbar1.setItems([cancelItem1, doneItem1], animated: true)
14
15 self.NyuukyoText.inputView = pickerView1
16 self.NyuukyoText.inputAccessoryView = toolbar1
17
18
19 //piclerView2の設定
20 pickerView2.delegate = self
21 pickerView2.dataSource = self
22 pickerView2.showsSelectionIndicator = true
23 pickerView2.tag = 2
24
25
26 let toolbar2 = UIToolbar(frame: CGRectMake(0, 0, 0, 35))
27 let doneItem2 = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(ShousaiViewController.done))
28 let cancelItem2 = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(ShousaiViewController.cancel))
29 toolbar2.setItems([cancelItem2, doneItem2], animated: true)
30
31 self.electric.inputView = pickerView2
32 self.electric.inputAccessoryView = toolbar2
33
34
35
36 //pickerView3の設定
37 pickerView3.delegate = self
38 pickerView3.dataSource = self
39 pickerView3.showsSelectionIndicator = true
40 pickerView3.tag = 3
41
42
43 let toolbar3 = UIToolbar(frame: CGRectMake(0, 0, 0, 35))
44 let doneItem3 = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(ShousaiViewController.done))
45 let cancelItem3 = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(ShousaiViewController.cancel))
46 toolbar3.setItems([cancelItem3, doneItem3], animated: true)
47
48 self.water.inputView = pickerView3
49 self.water.inputAccessoryView = toolbar3
50
51
52 //pickerView4の設定
53 pickerView4.delegate = self
54 pickerView4.dataSource = self
55 pickerView4.showsSelectionIndicator = true
56 pickerView4.tag = 4
57
58
59 let toolbar4 = UIToolbar(frame: CGRectMake(0, 0, 0, 35))
60 let doneItem4 = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(ShousaiViewController.done))
61 let cancelItem4 = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(ShousaiViewController.cancel))
62 toolbar4.setItems([cancelItem4, doneItem4], animated: true)
63
64 self.elevator.inputView = pickerView4
65 self.elevator.inputAccessoryView = toolbar4
66
67
68 //picerView5の設定
69 pickerView5.delegate = self
70 pickerView5.dataSource = self
71 pickerView5.showsSelectionIndicator = true
72 pickerView5.tag = 5
73
74
75 let toolbar5 = UIToolbar(frame: CGRectMake(0, 0, 0, 35))
76 let doneItem5 = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(ShousaiViewController.done))
77 let cancelItem5 = UIBarButtonItem(barButtonSystemItem: .cancel, target: self, action: #selector(ShousaiViewController.cancel))
78 toolbar5.setItems([cancelItem5, doneItem5], animated: true)
79
80 self.parking.inputView = pickerView5
81 self.parking.inputAccessoryView = toolbar5
82
83
84
85 }
86
87 //幾つの項目をピッカーに表示するか指定する
88
89 func numberOfComponents(in pickerView: UIPickerView) -> Int {
90 return 1
91 }
92
93 func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
94 if pickerView.tag == 1 {
95 return list.count}else if pickerView.tag == 2{
96 return list2.count
97 } else if pickerView.tag == 3 {
98 return list3.count
99 } else if pickerView.tag == 4{
100 return list4.count
101 } else {
102 return list5.count
103 }
104 }
105
106
107
108
109 func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
110 if pickerView.tag == 1 {
111 return list[row]}
112 else if pickerView.tag == 2 {
113 return list2[row]
114 } else if pickerView.tag == 3{
115 return list3[row]
116 } else if pickerView.tag == 4{
117 return list4[row]
118 } else {
119 return list5[row]
120 }
121 }
122
123
124 func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
125 if pickerView.tag == 1 {
126 self.NyuukyoText.text = list[row]} else if pickerView.tag == 2 {
127 self.electric.text = list2[row]
128 } else if pickerView.tag == 3{
129 self.water.text = list3[row]
130 } else if pickerView.tag == 4{
131 self.elevator.text = list4[row]
132 } else {
133 self.parking.text = list5[row]
134 }
135 }
136