
Betrayer
21.02.2017
03:56:35
Привет. Есть такая задача, нужно предзаполнить часть полей анкеты из данных которые уже есть. Как лучше это сделать?
Пока что я только придумал поставить тэги и записывать данные исходя из массива ключей для словаря.
Но как-то громоздко.

Alexander
21.02.2017
05:13:37
Ну так есть же класс, который описывает эту анкету? Заполняешь свойства объекта, у тебя заполняются поля, или чего-то не догоняю?

Google

Betrayer
21.02.2017
05:19:34
Хочу чтобы из словаря данные в UITextField перегонялись.
Точнее в несколько текстфилдов.

Andrew
21.02.2017
05:23:33
Введи понятие ViewModel, которую ты будешь передавать во вью при создании, привяжи филды к полям модели, если тебе прям "архитектурненько" надо, подход MVVM называется, вот пример реализации https://habrahabr.ru/post/273455/

Betrayer
21.02.2017
05:25:32
Meh, не хочу вводить лишние сущности. Я думал если можно что-то вроде storyboardID использовать как идентификатор UITextField.
И по соответсвию ключа забивать данные.
Но ради одной анкеты переделывать всю архитектуру.

Булат
21.02.2017
05:26:47
Треш какой-то)
В чем проблема собрать в сториборде табличку-форму из статичной тейблвью с текстфилдами, прикрутить последние к контроллеру
И заполнять через данные объекта анкеты

Betrayer
21.02.2017
05:28:05
Я просто сделал второй словарь, ключ:поле.
И по одинаковым ключам заполняю.

Булат
21.02.2017
05:28:42
А откуда эти данные берутся? Кешировались до этого где-то? Или пользователь на предыдущих экранах вводил?

Betrayer
21.02.2017
05:28:56

Google

Булат
21.02.2017
05:29:59

Betrayer
21.02.2017
05:30:26

Булат
21.02.2017
05:30:40

Betrayer
21.02.2017
05:30:42
И эмитируется удостоверяющим центром.
Оба словаря.
Уже составил.
Чуть позже сделаю что-нибудь менее хаковое.

Булат
21.02.2017
05:31:58
Сегодня ты, завтра другой программист)
Ну впрочем это уже подходы. Сути не меняет
Прикручивай текстфилды как IBOutlet

Betrayer
21.02.2017
05:32:23
Уже давно это сделал.

Булат
21.02.2017
05:32:29
И заполняй значения своими словарями

Betrayer
21.02.2017
05:32:37
self.fields = @{@"name":self.nameField, @"lastName":self.surnameField, @"middlename":self.middleNameField, @"IIN":self.IINField, @"ZIP":self.zipCodeField, @"city":self.cityField, @"address":self.addressField, @"phone":self.phoneField, @"email":self.emailField};

Булат
21.02.2017
05:33:10
О_о

Betrayer
21.02.2017
05:33:19
Ага, мне тоже не нравится.
Зато потом я могу сделать вот так
-(void) setPersonalData:(NSDictionary *)personalData{
_personalData = [[NSDictionary alloc] initWithDictionary:personalData[@"subject"]];
logMessage(@"%@",_personalData);
for(NSString* key in _personalData.allKeys) [self updateTextField:self.fields[key] text:_personalData[key]];
}
В общем, я хочу чтобы я мог делать второе, не делая первое.

Булат
21.02.2017
05:36:12
Думаешь стоит мучиться так? Да, строчек меньше, но если кто-то другой посмотрит, ему будет очень сложно понять, что там во втором куске кода происходит

Betrayer
21.02.2017
05:36:33
-(void) updateTextField:(UITextField*) field text:(NSString*) text{
field.text = text;
field.enabled = NO;
field.textColor = [UIColor darkGrayColor];
}

Google

Булат
21.02.2017
05:37:08
В смысле
self.nameField.text = value
И так далее по всем филдам гораздо проще понимается

Betrayer
21.02.2017
05:37:36
Ага, вот сейчас бы плодить по три строки кода для каждого филда.

Булат
21.02.2017
05:38:30
Вот то что делает тот последний метод можно сделать миллионом способов)

Betrayer
21.02.2017
05:38:48
Покажи хотя бы два.

Булат
21.02.2017
05:39:44
Есть XLForms или Eureka если не хочешь сильно заморачиваться. Они тебе и форму соберут, и все ивенты филдов там удобно обрабатываются очень
А если не хочешь пихать в проект что-то

Betrayer
21.02.2017
05:40:28
Не могу использовать поды в проекте.

Булат
21.02.2017
05:40:35
То можно просто сделать сабкласс Текстфилда, в котором будет меняться апиренс его в зависимости от enabled
Или же можно стать делегатом филдов
И этот код поставить в делегат методы
Я конечно не знаю всей специфики проекта, но вот эти словарики это действительно жесть. Вот эти предложенные варианты кажутся более аккуратными
Самое первое предложение про MVVM тоже крутое. Там что угодно можно сделать очень аккуратно.
И оно совмещается с MVC без проблем
Правда я бы rx не прикручивал

Betrayer
21.02.2017
05:50:56

Булат
21.02.2017
05:51:57
А что тогда спрашиваешь как зарефакторить можно?) оставляй если работает, раз такое. Делай то что ещё не работает.
Потом зарефакторишь как нравится

Betrayer
21.02.2017
05:52:37
Я думал можно по-быстрому решение лучше впилить.

Булат
21.02.2017
05:53:07
Ну на MVVM ты часик-два потратишь максимум

Betrayer
21.02.2017
05:53:08
Мне кажется, или в телеграмме дохуя Dmitriy'ев?

Google

Булат
21.02.2017
05:53:28
Тебя никто не заставляет переводить на это дело всю прилу

Severd
21.02.2017
05:54:46

Betrayer
21.02.2017
05:55:20
Просто в каждом русскоязычном чате есть хотя-бы один Dmitriy.
А Иванов нет.
Где все Иваны?

Severd
21.02.2017
05:55:54
когда я в школе учился, в классе было 5 Дмитриев

Betrayer
21.02.2017
05:56:11
Where is russian Ivan?
@khabiroff, я потом почитаю про rxSwift.
Следующую итерацию на него переведу.

Булат
21.02.2017
06:00:01
Рх далеко не обязательная часть MVVM
Ну это просто лично я не люблю рх

Andrew
21.02.2017
06:28:21
rx - просто попалось в перво выгугленном примере mvvm под иос, там откуда этот мввм приехал гуй сам по сути в реактивность может

Aleksandr
21.02.2017
07:50:33
Привет, кто помнит сайт, который показывает ориентировочное время прохождения приложения модерации?

Alexey
21.02.2017
07:51:00
Это как сервис, узнай свой iq?

Ильнур
21.02.2017
07:54:54

Roman
21.02.2017
07:55:17
http://appreviewtimes.com

Nik
21.02.2017
07:55:40

Taras
21.02.2017
07:57:08

Aleksandr
21.02.2017
07:58:36

Timka
21.02.2017
08:06:42
Беги атсюдово

Google

Ruslan
21.02.2017
08:20:57
Доброго времени суток! Работаю в сфере образования. Программирование больше хобби чем профессия. Хочу переквалифицироватся в IOS-dev. В сообществе хотелось бы получать больше инфы из мира ios dev. Живу в Астане, Казахстан. #whois

F
21.02.2017
08:58:03

Betrayer
21.02.2017
08:59:19
У вас там хоть снег начал таять?

Ruslan
21.02.2017
09:04:02

Betrayer
21.02.2017
09:04:18
Зачем так жить?

Ruslan
21.02.2017
09:05:30
В холоде человек лучше сохраняется ?

Betrayer
21.02.2017
09:07:17
Астанафантазии.

Иван
21.02.2017
09:29:20
/stat@combot
/stat@combot

Combot
21.02.2017
09:29:24
combot.org/chat/-1001063580584
combot.org/chat/-1001063580584

Benjamin
21.02.2017
09:29:42
/stat@combot

Combot
21.02.2017
09:29:42
combot.org/chat/-1001063580584

Maksim
21.02.2017
09:33:39
/stat@combot