Будет ли UIView подпредставления получать любой обратный вызов, когда вызывается содержащий UIViewController viewWillDisappear - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть пользовательский элемент управления, который я добавил к представлению UIViewController, в нем есть таймер, и мое требование - остановить таймер, когда ViewController исчезает (т. Е. Скажем, новый ViewController помещается в стек).Прямо сейчас я вручную вызываю одну функцию в пользовательском элементе управления, чтобы остановить таймер в viewWillDisappear ViewController, и я хочу обработать его внутри пользовательского элемента управления, так как он используется в нескольких местах, и я мог бы использовать его внутри чего-то вроде табличного представления.в будущем.

Любые предложения приветствуются.

Ответы [ 3 ]

0 голосов
/ 22 ноября 2018

В вашем случае, возможно, пришло время обновить элемент управления с UIView до UIViewController.Вам не нужно изменять реализацию UIView, но добавьте оболочку контроллера.

Существует контейнерное представление, которое может служить сервером в качестве элемента управления (для UIView), но всю логику лучше перенести в UIViewController заКонтейнерный вид, включая Таймер.

Когда родительский ViewController отклонен, viewDidDisappear вашего Контроллера также может быть вызван автоматически.Это лучший способ, который я могу получить сейчас.Надеюсь, вы удовлетворены этим обходным путем.

0 голосов
/ 22 ноября 2018

Можно.1) Создан синглтон, в котором будет храниться ссылка для вашего класса.И назови его методом.2) Вы можете создать делегата для этого класса для вас следующий vc.И назови его методом.3) Вы можете получить VC из стека навигации контроллера.И вызов метода.

0 голосов
/ 22 ноября 2018

Будут вызваны методы жизненного цикла дочернего контроллера представления, поэтому вы можете остановить время в viewWillDisappear(_ animated: Bool) дочернего контроллера представления.

...