У меня есть UIPageVIewController
и я инициализация контроллеров внутри с помощью ИЭ идентификатора повторного использования:UIViewControllers повторного использования в UIPageViewController
BaseContentViewController *contentViewController = (BaseContentViewController *)[self.storyboard instantiateViewControllerWithIdentifier:self.controllerRestorationIDs[index]];
Я заметил, что
если в
UIViewController
используется повторно, тоviewDidLoad
является не вызывается в этом контроллере, поэтому любой код, который я хочу исполнять каждый раз, появляетсяUIViewController
.
Например, я хочу менять цвет фона каждый раз, когда он появляется.
Есть ли способ, как prepareForReuse
, что UITableViewCell
имеет, что я могу поместить этот код?
Из моих экспериментов, кажется довольно случайным образом, если создается новый контроллер представления или используется тот, который хранится в памяти. Это лишь некоторые функции управления автоматической памятью? Я предполагаю, что если я хочу что-то делать каждый раз, когда он появляется, я должен поместить код в viewWillAppear? – KexAri
Это мое понимание (и опыт), что -instantiateViewControllerWithIdentifier: создаст новый экземпляр при каждом его вызове. Я бы начал с предположения, что это то, что он делает, и то, что вы видите, на самом деле является некоторым другим непониманием кода, который вы написали. –
Если это произошло, то viewDidLoad будет вызываться каждый раз, хотя, нет? Я поставил NSLog в это, чтобы проверить. Иногда это называется, а иногда и нет. – KexAri