У меня есть 2 UIPickerController на одном из контроллеров View. Я могу заставить его работать, но когда я добавляю второй, мое приложение падает. Вот код, который я использую для одного выбора:Как использовать 2 UIPickerView в одном контроллере просмотра?
import UIKit
class RegisterJobPosition: UIViewController, UIPickerViewDelegate{
@IBOutlet weak var positionLabel: UILabel!
var position = ["Lifeguard", "Instructor", "Supervisor"]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func numberOfComponentsInPickerView(PickerView: UIPickerView!) -> Int
{
return 1
}
func pickerView(pickerView: UIPickerView!, numberOfRowsInComponent component: Int) -> Int
{
return position.count
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String!
{
return position[row]
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
positionLabel.text = position[row]
}
}
Теперь, как я могу заставить второй контроллер работать? Скажем, мой второй PickerView называется location
(другой называется position
). Я попытался дублировать код в методах PickerView для location
, но он не работает.
Я использую Swift.
Вам понадобится способ отличить их от двух, если ваш контроллер просмотра является единственным делегатом для взаимодействия с пользователем. Можете ли вы опубликовать код, который вы используете, чтобы отличить их? – andrewcbancroft
Я просто дублирую код. Например, в методе numberOfRowsInComponent я просто положил: return location.count – dom999999
Эта часть имеет смысл. Но как вы программно выясняете, какой экземпляр сборщика вы возвращаете? Если у вас есть два экземпляра сборщика, отправляющих сообщения на ваш единственный контроллер представления (делегат), вам нужен способ определить сборщиков, чтобы вы могли сделать соответствующую логику филиала и вернуть правильный счет для правильного выбора. – andrewcbancroft