Anonymous
Деда
в одном месте чтобы обработать событие
Деда
Андрей, если нельзя, то так и скажи
Anonymous
Сказал бы
Anonymous
Но зачем?!
Деда
Зачем отлавливать в одном месте?
Деда
Чтобы по коду всему вставки не делать
Деда
по кнопкам отловил
Деда
Class class = [self class];
SEL originalSelector = @selector(sendAction🇹🇴from:forEvent:);
SEL replacementSelector = @selector(heap_sendAction🇹🇴from:forEvent:);
Method originalMethod = class_getInstanceMethod(class, originalSelector);
Method replacementMethod = class_getInstanceMethod(class, replacementSelector);
method_exchangeImplementations(originalMethod, replacementMethod);
Ivan
а для чего тебе такое извращение?
Деда
Anonymous
Ты описываешь свое решение, а не задачу
Деда
В конце разработки сказали что нужно теперь определенные action разрешить или запретить и вывести алерт
Деда
Я знаю что можно пробежатся по коду и проставить, но думал может какое то поизященее решение есть
Деда
каким нибудь swizzle или что то еще
Anonymous
Понятнее не стало
Evgenii
Я понял
Деда
По всему интерфейсу есть кнопки и прочее
Деда
Нужно теперь по определенным условиям разрешить их action или запретить
Деда
Если бы знал бы изначально, то по другому сделал бы структуру
Деда
Но теперь пробегаться по коду и делать вставки очень не хочется
Деда
По UIControl событиям сделал с помощью кода выше
Evgenii
Тебе только свиз может помочь) но лучше пробежаться по коду)
Деда
Остались теперь тапы по по таблицам
Ivan
ну если кнопки, то вместо свиза, лучше переопределить обычный UIBUTTON
Ivan
а целки тоже сабклассом
Деда
Class class = [self class];
SEL originalSelector = @selector(sendAction🇹🇴from:forEvent:);
SEL replacementSelector = @selector(heap_sendAction🇹🇴from:forEvent:);
это ловит не только кнопки но и все от UIControl
Деда
табы и прочее
Деда
а вот методы делегата нет
Деда
Как с помощью свиза методы делагата подменить?
Ivan
табы и прочее
ну переопредели hitTest например, тогда ваще по хардкору будет йопт
Anonymous
Капец конечно
Ivan
всё нафиг буш ловить
Evgenii
Сергей ты творишь чёрную магию) если это не мини проект -сделал и забыл, одумайся!)
Ivan
это да
Деда
Блин, ну не хочется по коду раскидывать
Ivan
надо продумать как можно сделать не раскидывая
Деда
Вот, посоветуйте, что можно еще делать чтобы не раскидывать
Ivan
Как у тебя вообще элементы разбросаны?
Evgenii
Только наследование
Деда
Мне самому это претит, но вставки в коде еще больше
Деда
Ivan
Не совсем понял вопрос
ну, тебе надо что бы на нажатие определенных кнопок и целок, открывался алерт, верно?
Ivan
и такое может быть на любом экране? или что?
Ivan
как устроены сейчас экраны
Деда
ну, тебе надо что бы на нажатие определенных кнопок и целок, открывался алерт, верно?
- Возможность полной блокировки всех разделов таб бара кроме профиля и активности ( в конфиге приходит вкл/выкл. блокируются переходы по профилям, сообщения, разделы знакомства и встречи, при заходе в сообщения можно просматривать список чатов и переписку, но нельзя писать. в активности видим что что то происходит но перейти в какой либо профиль не можем. Если пользователь премиум, то на него это ограничение не распространяется)
Деда
- Кол-во кликов перед показом всплывашки триала (в конфиге приодит количество кликов пользователя в приложении (после запуска приложения) после которых нужно показывать всплывашку триала. Если пользователь премиум, то на него это ограничение не распространяется)
- Кол-во кликов после отказа от триала - перед показом всплывашки премиума (в конфиге приодит количество кликов пользователя в приложении (после отказа от подключения триала) после которых нужно показывать всплывашку премиума. Если пользователь премиум, то на него это ограничение не распространяется)
Деда
и таких много пунктов
Деда
Деда
У меня сейчас вюхи все от View : UIView
Деда
вьюконтроллеры от ViewConroler: UIViewController
кнопки от Button : UIButton
Ivan
А что если сделать TrialButton: Button ?
Деда
но как это применить к своей задаче я пока не пойму
Ivan
и по дефолту они будут "выключены"
Evgenii
Так я и говорю наследование
Деда
Иван я привел часть хотелок
Деда
В моем случае идеально поймать все события в одном месте, распарсить, запретить или разрешить
Деда
Иначе получится такая хрень раздутая
Evgenii
Так сделай сервис для определения можно нельзя
Evgenii
Хрен с ним путь сервис будет синглтоном
Деда
Evgenii
И метод проверки прав
Evgenii
Отдаёшь туда кнопку, он говорит можно нельзя
Деда
Так в сервисе и хочу сделать, точнее сделал уже, через него пропускаю событие
Evgenii
Можно отнаследоватся от кнопок и туда это вшить
Деда
hitTest попробую сейчас
Деда
С кнопками я уже решил полностью
Evgenii
Так же с делегатом таблицы
Evgenii
Но свиз это Хреново
Деда
Точнее со всем что наследуется от UIControl
Деда
Я со свизом мало сталкивался, какие проблемы могут быть с ним?
Деда
в чем его минус?
Ivan
нестабильная хрень
Деда
Понял про что ты
Ivan
которую я у себя тоже использую, для подмены шрифтов и активного языка
Ivan
1 раз эйпл переименовали болд шрифты и в новом иос сдк не подгружались нужные шрифты, но это фигня
Ivan
просто с этой хренью нужно быть _очень_ осторожным
Ivan
да и магия это