Как перехватить все события view viewIDIDAppear контроллера в приложении в одном месте? - PullRequest
0 голосов
/ 09 октября 2018

У меня есть приложение на основе UITabBarController, и над панелью вкладок появляется дополнительная панель, похожая на проигрыватель приложения Music.

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

Одним из очевидных способов является создание подклассов всех видов прокрутки, представлений таблиц и т. д. и добавление вставок.Другой способ - создать подкласс UIViewController и использовать его повсюду в приложении.Ни один из них не является хорошим вариантом в существующем приложении с десятками контроллеров представления.Также я не хочу использовать метод swizzling.

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

Однако, похоже, не могу найти легкий способ перехвата этих событий.Есть идеи?Или какие-либо другие способы, как можно автоматически вводить вкладыши везде?

1 Ответ

0 голосов
/ 09 октября 2018

Как перехватить все события viewDidAppear контроллера представления в приложении в одном месте?

Нет никакого способа сделать это, кроме быстрого доступа viewDidAppear:.

в UIViewController.

Или каким-либо другим способом, как можно автоматически вставлять вставки везде?

Просто установите additionalSafeAreaInsets на вашем UITabBarController.Звоните viewSafeAreaInsetsDidChange, когда дополнительная полоса появляется или исчезает (если таковая).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...