1つのビュー・コントローラーに2つのピック・ビューを配置しようとしています。私はそれらのために異なるタグを設定しようとしました。しかし、どちらのビューにも「選択肢」の配列があります。私は両方をコントロールしてドラッグし、データソースとデリゲートに設定しました。私はまた、以下のコードを試しました。前もって感謝します。Swift 3の同じコントローラーに2つのピック・ビューを配置する方法
import Foundation
import UIKit
class SecondViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
var model = Model()
@IBOutlet weak var hoursTakenText: UITextField!
@IBOutlet weak var PickerView2: UIPickerView!
@IBOutlet weak var pickerView1: UIPickerView!
let choices2 = ["0","0.7","1.0"]
let choices: [String] = (1...90).map { String($0)}
@IBAction func hoursTaken(_ sender: Any) {
subView.isHidden = false
}
@IBOutlet weak var subView: UIView!
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if pickerView == pickerView1 {
return choices[row]}
else {
return choices2[row]
}
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if pickerView == pickerView1 {
return choices.count}
else{
return choices2.count
}
}
//choices[row]: [String] = (1...10).map { "Option " + String(format: "%2d", $0)}
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
let label = (view as? UILabel) ?? UILabel()
label.font = UIFont(name: "Verdana", size: 15)
//label.textColor = .blue
label.textAlignment = .center
//label.font = UIFont.systemFont(ofSize: 20)
label.text = choices[row]
return label
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
let hourstaken = Double(choices[row])
print(hourstaken!)
var stuDent: Student
if pickerView == pickerView1 {
print(choices[row])
stuDent = Student(hoursTaken: hourstaken!)
model.student.append(stuDent)
}
subView.isHidden = true
hoursTakenText.text = choices[row]
print("hello")
}
override func viewDidLoad() {
//pickerViewBack.isHidden = true
super.viewDidLoad()
subView.isHidden = true
}
}
を以下 を行うことができますが動作し、それを手に入れたことを行うためにタグを使用することができます!本当にありがとう! – jean
@jeanもし正しい解決策があれば、アップしてください – Cloy