Когда вызывается viewDidLoad? - PullRequest
       27

Когда вызывается viewDidLoad?

6 голосов
/ 16 октября 2010

Безопасно ли предположить, что атрибут, а именно fetchedResultsController, chatViewController, экземпляр подкласса UITableViewController, всегда nil при вызове viewDidLoad, предполагая, что он установлен в nil в viewDidUnload?Фу!

Если это так, то я не вижу непосредственной необходимости переопределять функцию доступа, как в примере приложения Xcode CoreDataBooks.Я бы предпочел просто поместить весь этот код в viewDidLoad вместо отдельной функции, потому что это единственное место, где я буду его использовать.

Ответы [ 4 ]

3 голосов
/ 17 октября 2010

viewDidLoad вызывается после загрузки вашего представления. Является ли fetchedResultsController нулевым или нет, зависит от того, как инициализируется viewController. Например, при создании detailViewController вы можете установить его fetchedViewController до вызова viewDidLoad:

RecipeDetailViewController *detailViewController = [[RecipeDetailViewController alloc] initWithStyle:UITableViewStyleGrouped];
detailViewController.fetchedResultsController = fetchedResultsController;

[self.navigationController pushViewController:detailViewController animated:animated];
[detailViewController release];

Тем не менее, тогда nil'ing fetchedResultsController в viewDidUnload гарантирует, что он равен nil.

3 голосов
/ 28 июля 2015

ViewDidLoad, вызываемый в этих Secnarion: -

1. когда мы нажимаем контроллер представления после создания его объекта по segue или по идентификатору статической платы.

2. он вызывается более чем один вв случае создания экземпляра больше времени в приложении, и нажмите его снова и снова. Например: -если вы реализуете как coaursal (который потребовал дополнительного контроллера во время прокрутки), как это необходимо, чтобы он мог вызываться несколько раз viewDidLoad.

3.Это вызывается, когда создается весь экземпляр памяти (экземпляр uiviewcontroller и его подкласс), что означает, что наше представление готово к загрузке в память с адресом.

4.Помните, что создается только дочерний объект контроллера класса..parent объект класса никогда не создавался во время обычного Secnarion.

2 голосов
/ 16 октября 2010

Вы должны предположить, что viewDidLoad может быть вызван несколько раз.Если отправлено предупреждение о памяти, контроллер представления выгрузит представление из памяти, и в следующий раз, когда это потребуется, будет вызван viewDidLoad.

0 голосов
/ 13 июля 2016

viewDidLoad вызывается только когда экземпляр создается впервые.Если вы не воссоздаете контроллер представления каждый раз в своем приложении, вы будете вызывать его только один раз (и вызывать снова, если вы получите предупреждение о памяти и представление обнуляется).

...