В чем разница между viewDidLoad
и viewDidAppear
? Какая инициализация или пользовательский код входят в эти функции?
например. presentModalViewController
работает только тогда, когда присутствует в viewDidAppear
, а не на viewDidLoad
.
В чем разница между viewDidLoad
и viewDidAppear
? Какая инициализация или пользовательский код входят в эти функции?
например. presentModalViewController
работает только тогда, когда присутствует в viewDidAppear
, а не на viewDidLoad
.
viewDidLoad
вызывается ровно один раз, когда контроллер представления сначала загружается в память. Здесь вы хотите создать экземпляр любых переменных экземпляра и построить любые представления, которые живут на протяжении всего жизненного цикла этого контроллера представлений. Тем не менее, представление, как правило, пока не видно на данный момент.
viewDidAppear
вызывается, когда представление фактически видимо и может быть вызвано несколько раз в течение жизненного цикла контроллера View (например, когда Modal View Controller уволен и представление становится видимым снова). Здесь вы хотите выполнить любые действия макета или сделать какой-либо чертеж в пользовательском интерфейсе - например, представив контроллер модального представления. Однако все, что вы здесь делаете, должно повторяться. Лучше не хранить здесь вещи, иначе вы получите утечку памяти, если вы не отпустите их, когда представление исчезнет.
Смотрите: https://developer.apple.com/documentation/uikit/uiviewcontroller
Проще говоря, вы хотели бы создать любые элементы управления или массивы в viewDidLoad
, где, как и в viewDidAppear
, вы хотите обновить эти элементы управления или массивы.
viewDidLoad
вызывается один раз при создании контроллера и viewDidAppear
вызывается каждый раз, когда вид, ну, появляется DID. Итак, скажите, что у вас есть модальное представление, которое вы представляете, когда это представление отклонено, будет вызываться viewDidAppear
, а viewDidLoad
не будет вызываться.