Ответ 1
Если вы разрабатываете приложения без использования метода xib
LoadView()
, и если есть xib, то метод ViewDidLoad
вызывается
Так что лучше использовать метод LoadView.
В чем разница между viewDidLoad() и LoadView()? Каким образом они отличаются друг от друга?
Какой из них лучше при разработке приложений без использования XIB?
Спасибо.
Если вы разрабатываете приложения без использования метода xib
LoadView()
, и если есть xib, то метод ViewDidLoad
вызывается
Так что лучше использовать метод LoadView.
ViewDidLoad
вызывается при завершении загрузки вида и вызывается loadView
при запуске загрузки.
И когда вы создаете новый проект, вы видите комментарии к этим методам, которые явно дают подсказку, когда вы должны использовать какую функцию
см. это
/*
// Implement loadView to create a view hierarchy programmatically, without using a nib.
- (void)loadView {
}
*/
/*
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
}
*/
Эти комментарии понятны и понятны.
viewDidLoad()
следует использовать, когда вы загружаете свое представление из NIB и хотите выполнить любую настройку после запуска.
LoadView()
должен использоваться, если вы хотите создать свое представление программно (без использования Interface Builder).
Если вы собираетесь использовать IB для создания пользовательского интерфейса, вы должны выполнить всю свою инициализацию после IB в viewDidLoad. Класс не будет вызывать loadView вообще, если вы используете nib для инициализации контроллера.
Если вы инициализируете контроллер в коде, viewController сначала вызовет loadView, а затем viewDidLoad. Вы можете выполнить всю свою инициализацию в loadView или viewDidLoad в зависимости от ваших предпочтений.
Однако, если вы решите использовать loadView, не забудьте установить свойство view перед попыткой прочитать self.view, иначе вы войдете в бесконечный цикл и сбой.
Если вы инициализируете свой вид из файла stroyboard или xib, не переопределяйте этот метод или не вызывайте [super loadView] внутри. если вы вызываете [super loadView] внутри метода, лучше не переопределять этот метод и поместить следующий код в ваш метод viewDidLoad.
если вы программно инициализируете свое представление, вы НИКОГДА не должны называть [super loadView]. и вы должны назначить свой rootView для свойства self.view, или вы можете получить идеальный сбой.
Разве это не очевидно?
viewDidLoad
вызывается... Когда представление завершает загрузку.
loadView
вызывается при загрузке представления.
Ничего лучше или хуже. Все зависит от вашего дизайна.
Удачи:)
диспетчер просмотра загружает свой вид из связанного с ним связанного элемента, если нет связанного ниба, тогда он автоматически вызывает метод loadView(), чтобы заполнить его View. В этом случае вам необходимо реализовать метод loadView(). по умолчанию он возвращает nil
Когда ваш просмотр загружается в память, здесь вызывается методDidLoad(), вы можете выполнить свою пользовательскую инициализацию в соответствии с вашим требованием.