The reason I am posting this source code is that I was doing research for a project and came to the understanding that there are not many examples which demonstrate how to use Swift uipickerView in Xcode with one picker and many numbers to choose from.
This particular example has two uipickerViews and two labels where the info from the uipickerView is sent to the labels. This is not a full tutorial however it is a guide for someone who knows what they are doing in Swift but needs a quick example of a uipickerView in action.
import UIKit
class SettingsTableViewController: UITableViewController, UIPickerViewDataSource, UIPickerViewDelegate {
@IBOutlet weak var beginningPickerView: UIPickerView!
@IBOutlet weak var endingPickerView: UIPickerView!
@IBOutlet weak var beginningPickerViewLabel: UILabel!
@IBOutlet weak var endingPickerViewLabel: UILabel!
var picker: UIPickerView!
var beginningPicker: UIPickerView!
var beginningPickerSegue: String?
var endingPickerSegue: String?
override func viewDidLoad() {
super.viewDidLoad()
picker = UIPickerView()
picker.dataSource = self
picker!.delegate = self
picker.center = view.center
view.addSubview(picker)
beginningPicker = UIPickerView()
beginningPicker.dataSource = self
beginningPicker!.delegate = self
view.addSubview(beginningPicker)
self.pickerView(endingPickerView, didSelectRow: 1000, inComponent: 0)
//endingPickerView.selectRow(1000, inComponent: 0, animated: false)
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
if pickerView == picker {
return 1
} else if pickerView == beginningPicker {
return 1
}
return 0
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if pickerView == picker {
return 1000
} else if pickerView == beginningPicker {
return 1000
}
return 0
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return "\(row + 1)"
}
//this updates the label to reflect pickerView value
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
let selectedValueEndingPickerView = pickerView.selectedRow(inComponent: 0)
let selectedBeginningPickerView = pickerView.selectedRow(inComponent: 0)
if pickerView == beginningPicker {
beginningPickerViewLabel.text = String(selectedBeginningPickerView + 1)
beginningPickerSegue = String(selectedBeginningPickerView + 1)
} else if pickerView == picker {
endingPickerViewLabel.text = String(selectedValueEndingPickerView + 1)
endingPickerSegue = String(selectedValueEndingPickerView + 1)
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
if (segue.identifier == "unwindToStart") {
let svc = segue.destination as! ServerViewController
svc.serverNumberLowLabel.text = beginningPickerSegue
svc.serverNumberHighLabel.text = endingPickerSegue
}
}
}
Thank you for reading.
If this helped you great. If you need more info to keep researching because I am a beginner and still learning myself.
Check out this app Link to Google play app