получить выбранную строку из пользовательского источника данных? - PullRequest
1 голос
/ 02 июня 2011

У меня есть вид, который отображает пользовательский UIPickerView.У меня также есть отдельный класс DataSource для UIPickerView, который также является делегатом для UIPicker.

Полагаю, вам нужно получать выбранные значения из источника данных (модели), а не из самого средства выбора.

Каков наилучший способ получить выбранное значение пользовательского UIPickerView из другого представления?

Следует ли сохранить значение в локальном поле в пользовательском классе DataSource в didSelectRow: (NSInteger) строка inComponent: (NSInteger) метод и есть метод получения этого значения из других моих представлений?

1 Ответ

2 голосов
/ 02 июня 2011

Судя по вашему вопросу, вы не отделили свой код от своих данных, другими словами, вы не придерживаетесь парадигмы Model-View-Control. Таким образом, звучит так, будто у вас ЕДИНСТВЕННОЕ представление, которое контролирует ваши данные ... но теперь вам нужно другое представление, и все становится грязным.

Существует несколько способов обмена данными, и все они действительно зависят от того, что вы делаете с ними. Например, допустим, что одно представление создает объекты данных и сохраняет их в NSMutableArray или NSMutableDictionary. Затем вы можете передать объект THA и получить к ним несколько представлений.

Некоторые люди могут захотеть создать это как свойство делегата приложения. Тогда для получения свойства достаточно просто использовать [[UISharedApplication] делегат].

Я предпочитаю передавать объекты (если не используются базовые данные) и использовать свойства для получения и установки значений.

Извините, если ответ немного расплывчатый, но вопрос тоже был немного расплывчатым - не существует одного "правильного" способа передачи данных. Некоторые из них более громоздки, чем другие, и вы сразу узнаете, что они совершенно не правы (в итоге вы будете бороться с кодом).

...