viewDidLoad (), LoadView () [duplikat]

To pytanie ma już odpowiedź tutaj:

Jaka jest różnica między viewDidLoad () A LoadView () ? W jaki sposób różnią się od siebie?

Który z nich jest lepszy, gdy tworzymy aplikacje bez użycia XIB ?

Dzięki .
Author: S.L. Barth, 2011-03-02

7 answers

Jeśli tworzysz aplikacje bez użycia xib LoadView() metoda jest wywoływana i jeśli istnieje xib to ViewDidLoad metoda jest wywoływana

Więc lepiej jest użyć metody LoadView.

 -4
Author: Gypsa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-01 09:07:16

ViewDidLoad jest wywoływana po zakończeniu ładowania widoku i loadView jest wywoływana po rozpoczęciu ładowania.

I kiedy tworzysz nowy projekt, widzisz komentarze do tych metod, które wyraźnie dają wskazówkę, kiedy powinieneś użyć której funkcji

Zobacz to

/*
// 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];
}
*/

Te komentarze są jasne i łatwe do zrozumienia.

 48
Author: Ishu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-30 04:28:53
viewDidLoad()

Jest używany podczas ładowania widoku z stalówki i chcesz wykonać dowolne dostosowanie po uruchomieniu.

LoadView()

Jest przeznaczony do tworzenia widoku programowo (bez użycia narzędzia Interface Builder).

 18
Author: ashokdy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-21 04:34:52

Jeśli zamierzasz używać IB do budowania interfejsu użytkownika, powinieneś wykonać całą inicjalizację post IB w viewDidLoad. Klasa w ogóle nie wywoła loadView, jeśli używasz nib do inicjalizacji kontrolera.

Jeśli zainicjalizujesz kontroler w kodzie, viewController wywoła najpierw loadView, a następnie viewDidLoad. Inicjalizację można wykonać w programie loadView lub viewDidLoad, w zależności od preferencji.

Jeśli jednak zdecydujesz się użyć loadView, upewnij się, że ustawisz właściwość view przed próba odczytania siebie.widok, w przeciwnym razie wejdziesz w nieskończoną pętlę i zawiesisz się.

 7
Author: futureelite7,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-30 08:00:14

Jeśli zainicjujesz widok z pliku stroyboard lub xib, nie nadpisuj tej metody ani nie wywołaj wewnątrz [super loadView]. jeśli wywołasz [super loadView] wewnątrz metody, lepiej nigdy nie nadpisuj tej metody i dodaj następujący kod do metody viewDidLoad.

Jeśli programowo zainicjujesz widok, nigdy nie powinieneś wywoływać [super loadView]. i musisz przypisać swój rootView do siebie.zobacz nieruchomość, albo możesz uzyskać doskonałą awarię.

 2
Author: Zhang Kai Yu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-08 07:23:58

Czy to nie oczywiste?

viewDidLoad nazywa się... Po zakończeniu ładowania widoku.

loadView jest wywoływany, gdy Widok ma się załadować.

Ani lepiej, ani gorzej. Wszystko zależy od Twojego projektu.

Powodzenia:)

 0
Author: Aurum Aquila,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-02 05:50:21

Kontroler widoku ładuje swój widok z powiązanej z nim nib jeśli nie ma powiązanej nib, to automatycznie wywołuje metodę loadView (), aby wypełnić jego Widok. W takim przypadku należy zaimplementować metodę loadView (). domyślnie zwraca nil

Kiedy widok ładuje się do pamięci metoda viewDidLoad() jest wywoływana tutaj, można wykonać niestandardową inicjalizację zgodnie z wymaganiami.

 0
Author: Piyush,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-02 07:11:41