2015-08-13 19 views
13

Chcę poznać kluczową różnicę między awakeFromNib() i viewDidLoad(), aby uzyskać większą jasność, jak to działa. Proszę, czy ktoś może wyjaśnić?Różnica między awakeFromNib() i viewDidLoad() w swift

+0

możliwe duplikat [który należy użyć, -awakeFromNib lub -viewDidLoad?] (Http://stackoverflow.com/questions/377202/which-should-i-use-awakefromnib-or-viewdidload) – vard

+0

możliwe duplikat [Wyjaśnij awakeFromNib, użycie initwithFrame] (http://stackoverflow.com/questions/8451900/explain-awakefromnib-initwithframe-usage) – mattt

Odpowiedz

15

Z dokumentacji Apple:

awakeFromNib:

Infrastruktura stalówka ładowania wysyła wiadomość awakeFromNib do każdego obiektu odtworzone z archiwum stalówki, ale dopiero po tym jak wszystkie obiekty w archiwum zostały załadowane i zainicjalizowane. Gdy obiekt odbiera komunikat awakeFromNib, jest zagwarantowane, że wszystkie jego połączenia wyjściowe i działania zostały już ustanowione.

Patrz: Nib Files in Resource Programming Guide

viewDidLoad:

Ta metoda jest wywoływana po załadowaniu sterownika widok jej zdaniem hierarchii do pamięci. Ta metoda jest wywoływana niezależnie od tego, czy hierarchia widoku została załadowana z pliku nib, czy została utworzona programowo w metodzie loadView. Zwykle zastępujesz tę metodę, aby wykonać dodatkową inicjalizację na widokach załadowanych z plików NIB.

+2

tak awakeFromNib jest wywoływany nawet przed viewDidLoad? –

+1

Zauważ, że 'awakeFromNib:' może nie zostać wywołany. – zaph

+0

Więc na to pytanie (http://stackoverflow.com/questions/36673624/manipulate-ib-outlets-in-awakefromnib-for-uicollectionviewcell-even-if-not-using), obudziłbym FromNib będzie właściwym miejscem do manipulowania IB wyloty? Zasadniczo pytanie pyta, gdzie można zainicjować punkty sprzedaży dla UICollectionViewCell, jeśli * nie * przy użyciu niestandardowego XIB? – Crashalot