Guest User

Untitled

a guest
Jan 23rd, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.25 KB | None | 0 0
  1. @IBOutlet weak var modelPicker: UIPickerView!
  2. @IBOutlet weak var makePicker: UIPickerView!
  3. @IBOutlet weak var yearPicker: UIPickerView!
  4.  
  5. var makeRow = 0
  6. var modelRow = 0
  7. var yearRow = 0
  8.  
  9. var listOfMakes: [String] = [String]()
  10. var listOfModels: [String] = [String]()
  11. var listOfYears: [String] = [String]()
  12. var carlist: Dictionary <String, Dictionary<String,Dictionary<String,String>>> = Dictionary()
  13.  
  14. override func viewDidLoad() {
  15. super.viewDidLoad()
  16.  
  17. modelPicker.delegate = self
  18. modelPicker.dataSource = self
  19. makePicker.delegate = self
  20. makePicker.dataSource = self
  21. yearPicker.delegate = self
  22. yearPicker.dataSource = self
  23.  
  24. self.listOfMakes = Array(carDictionary.keys)
  25. let firstCar = listOfMakes[0]
  26. let modelsDictionary = carlist[firstCar]! as Dictionary<String, Dictionary<String, String>>
  27. self.listOfModels = Array(modelsDictionary.keys).sorted()
  28. let firstModel = listOfModels[0]
  29. let yearsDictionary = modelsDictionary[firstModel]! as Dictionary<String, String>
  30. self.listOfYears = Array(yearsDictionary.keys).sorted()
  31. }
  32.  
  33. override func didReceiveMemoryWarning() {
  34. super.didReceiveMemoryWarning()
  35. // Dispose of any resources that can be recreated.
  36. }
  37.  
  38.  
  39. func setModelsList(make: String) {
  40. let modelsDictionary = carlist[make]! as Dictionary<String, Dictionary<String, String>>
  41. self.listOfModels = Array(modelsDictionary.keys).sorted()
  42. }
  43.  
  44. func setYearsList(make: String, model: String) {
  45. let modelsDictionary = carlist[make]! as Dictionary<String, Dictionary<String, String>>
  46. let modelsList = Array(modelsDictionary.keys)
  47. let yearsDictionary = modelsDictionary[model]! as Dictionary<String, String>
  48. self.listOfYears = Array(yearsDictionary.keys).sorted()
  49. }
  50.  
  51.  
  52. func numberOfComponents(in pickerView: UIPickerView) -> Int {
  53. return 1
  54. }
  55. func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
  56.  
  57. if pickerView == makePicker {
  58. return listOfMakes.count
  59. }
  60. else if pickerView == modelPicker {
  61. return listOfModels.count
  62. }
  63. else {
  64. return listOfYears.count
  65. }
  66. }
  67.  
  68. func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
  69.  
  70. if pickerView == makePicker {
  71. return listOfMakes[row]
  72. }
  73. else if pickerView == modelPicker {
  74. return listOfModels[row]
  75. }
  76. else {
  77. return listOfYears[row]
  78. }
  79. }
  80.  
  81.  
  82. func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
  83. if pickerView == makePicker {
  84. makeRow = row
  85. setModelsList(make: listOfMakes[makeRow])
  86. setYearsList(make: listOfMakes[makeRow], model: listOfModels[0])
  87. modelPicker.selectRow(0, inComponent: 0, animated: true)
  88. yearPicker.selectRow(0, inComponent: 0, animated: true)
  89. self.modelPicker.reloadAllComponents()
  90. self.yearPicker.reloadAllComponents()
  91. }
  92. else if pickerView == modelPicker {
  93. modelRow = row
  94. setYearsList(make: listOfMakes[makeRow], model: listOfModels[modelRow])
  95. yearPicker.selectRow(0, inComponent: 0, animated: true)
  96. self.modelPicker.reloadAllComponents()
  97. self.yearPicker.reloadAllComponents()
  98. }
  99. else {
  100. //do anything you want once you have chosen a specific year.
  101. }
  102. }
Add Comment
Please, Sign In to add comment