Alfred
а при чем здесь автолэйаут и ib?
Alfred
кажется всё же это разные вещи
Alfred
ты можешь сделать @IBDesgnable прописать там лэйаут и будет всё отображатся
Anton
Не понял. Считая вручную я тоже вижу результат. и так же сразу как с автолэйаутом
и каждый раз перебирать все вьюхи при выходе новой фичи или экрана от эпл...
Roman
эм. как ты видишь результат без IB?
Ты же в IB не видишь как у тебя сдвинулась плавно вьюшка
Anton
во всех приложениях
Vladislavs
D
> Antony приложениях с чего бы это?
Anton
следовать стайл и девелоп гайдам, что бы жизнь болью не казалась - вот все что нужно
Alfred
и каждый раз перебирать все вьюхи при выходе новой фичи или экрана от эпл...
Чего? У размеры считаются относительно размера экрана
D
Если правильно рассчитывать, то ничего не нужно перебирать
Vladislavs
Anton
Если правильно рассчитывать, то ничего не нужно перебирать
у меня 40 приложений по разным конторам, за которые я несу ответсвенность, так или иначе
Anton
скоро выйдет новый айпад - перебирать все констрейнты?
Anton
нет.
D
Зачем? Рассчитывай все фреймами
Stanislav
Вы сталкивались когда нибудь с багами в автолэйауте "Unsatisfied constraint at bla bla bla"
Эмм. Это не баг в лайауте как бы, это констрейнты не оч
Roman
Кажется, про вопрос с контроллерами все забыли
Alfred
Эмм. Это не баг в лайауте как бы, это констрейнты не оч
Понятно что баг не в лэйауте. А дебажить всё равно не понятно как
Roman
Кажется, про вопрос с контроллерами все забыли
Тут спор UI код или нет, автолэйаут или нет, это классека
Alfred
Roman
Согласен)))
Первый вопрос: что для тебя значит "архитектурно правильно"?
Alfred
под 1/3 и 2/3 тоже?
1/3 2/3 это что?
David
Первый вопрос: что для тебя значит "архитектурно правильно"?
Чтобы не нарушал из каких либо принципов солида и как можно максимальнее привести к реюзабельному виду
Alfred
В контроллере B сделай initWithНужнаяИнфа да и все дела
Не получится, там же storyboardID и всё вот это
David
В контроллере B сделай initWithНужнаяИнфа да и все дела
Я контроллер получаю с помощью id в сториборде
Alfred
а это, не, это не работает :) но не потому что автолэйаута нет, а потому что куча других вещей завязано. Короче куча легаси кода.
Roman
Контроллер А пушит В в навигейшн стек?
Stanislav
Не получится, там же storyboardID и всё вот это
Ну тогда на этом, как его, методе - (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([segue.identifier isEqualToString:@‘’ControllerB_ID’’]) { ControllerB *b = [segue destinationViewController]; … } }
Anton
шутка
Roman
Вопрос был я так понимаю что в В приходят разные данные и он под них настраивается
Stanislav
Я кстати не так давно спрашивал про передачу данных в этом методе, сказали жрать что дают :)
Stanislav
Вопрос был я так понимаю что в В приходят разные данные и он под них настраивается
Ну дык поставить там данные, а B пусть подстраивается в своем коде
David
Контроллер А пушит В в навигейшн стек?
мм, нет...а если даже да, то как сильно это повлияло бы?
Alfred
Если кому интересно про лэйаут https://www.youtube.com/watch?v=E0jHYYq8sdc&t=371s
Roman
Если кому интересно про лэйаут https://www.youtube.com/watch?v=E0jHYYq8sdc&t=371s
Спасибо, гляну. Над каким проектом работаешь?
David
Ну дык поставить там данные, а B пусть подстраивается в своем коде
Ну то есть тупо контроллер А создает инстанс В и уже сетит нужные свойства?
Stanislav
Там указываешь нужный тебе segue на контроллер B
Stanislav
Потом в prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender получаешь указатель на B и ставишь все что нужно
David
Ну ты же пишешь сначала, performSegue
Не у меня по тапу на ячейку, сигвеи не юзаю)
Stanislav
Код кинь тапа
Stanislav
А то я уже запутался. Если нет segue то создай контроллер из сториборда
Stanislav
Поставь свойство
Stanislav
И покажи (push или present)
Stanislav
В чем вопрос-то
Roman
мм, нет...а если даже да, то как сильно это повлияло бы?
Не знаю, просто непонятно, в каких они отношениях, контроллеры эти
Stanislav
ViewControllerB *vc = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"ViewControllerB»]; vc.someData = someDataFromA;
Roman
яндекс браузер
Молодой вроде браузер, и куча легаси кода уже?
Alfred
4-5 лет
Roman
Ахах
Roman
Казалось, что пару
Max
Не у меня по тапу на ячейку, сигвеи не юзаю)
тап на ячейку - это метод делегата, да и фиг с ним, как говорится, didSelect он всегда didSelectЧто-Нибудь
D
Смотрел это доклад, давно уже, мне тогда понравился подход такой А есть где-то пример кода?
D
4-5 лет
Max
Не у меня по тапу на ячейку, сигвеи не юзаю)
в итоге тебе надо определиться, какие данные откуда ты берешь, чтобы передать в заново инициализируемый VC
Max
варианты: 1. переменная в контроллере А 2. БД 3. хранилищще и тд
Max
NSUserDefaults 😂 недавно натолкнулся
слушьте, да хоть Keychain, источником данных могет быть любое что-нибудь, хоть папка в sandbox appы, откуда можно эти данные взять
Max
не суть
Stanislav
слушьте, да хоть Keychain, источником данных могет быть любое что-нибудь, хоть папка в sandbox appы, откуда можно эти данные взять
Не, там жестко было. Хотим мы показать товар с ид 1, пишем в дефолтс, инитим контроллер (в didSelect), ну а он уже в своем viewDidLoad из дефолтсов и читает, что ж ему открыть
Stanislav
На хабре был подобный пример, там UIImage с камеры в Documents писали, а в потом в другом контроллере читали
Alfred
кордатой тут тоже все пользуются?
David
кордатой тут тоже все пользуются?
Я надеюсь ты не склайтом?))
David
Напрямую)
Stanislav
ну юзать дефолтсы вместо БД - это как на мотоцикле картошку возить )))
Да вообще юзать дефолтсы для передачи ид между контроллерами несколько странно
Alfred
ну юзать дефолтсы вместо БД - это как на мотоцикле картошку возить )))
Юзать БД вместо юзердефолтс – это как на тракторе вещи возить