Я нахожу действительно странным или плохое дизайнерское решение, что UIPickerViewDelegate
содержит методы, которые должны быть осведомлены о его данных (заголовок). Поскольку это было бы всей целью его DataSource
. Как это:UIPickerView DataSource x Делегат-дизайн
pickerView(_:titleForRow:forComponent:)
pickerView(_:attributedTitleForRow:forComponent:)
pickerView(_:viewForRow:forComponent:reusingView:)
Я хочу реализовать PickerView
с различными объектами для DataSource
и Delegate
. Конечно, было бы легко создать нового делегата, возможно, назовите его PickerViewListenerDelegate
. Но поскольку яблоко разработало это дизайнерское решение, я подумал, что это стоит обсудить в первую очередь.
В чем смысл этого странного дизайнерского решения? Я что-то упустил?
Как и в случае с табличными представлениями, я часто использую тот же объект контроллера, что и DataSource и Delegate. Однако, как я вижу, у них есть два разных свойства по какой-то причине, и в этот раз для моего проекта было бы целесообразно использовать два разных объекта, однако странный дизайн 'UIPickerViewDataSource' и' UIPickerViewDelegate' мешает мне делая это. (Мне нужно было бы связать их странными способами, чтобы «делегат» знал заголовки. –