Która metoda jest wywoływana przez scenorys dla UIViewControllers
dodanej do scenorysu?iOS5 Storyboard UIViewController, która metoda init jest wywoływana przez storyboard?
Odpowiedz
inicjatora stosowany jest initWithCoder:
- (id)initWithCoder:(NSCoder *)decoder
Następnie potem można otrzymać komunikat awakeFromNib
.
uważam, że jest awakeFromNib
awakeFromNib pobiera nazywane też od naszego 'UIViewControllers' są "w puszkach" w twoim pliku .storyboard (odpowiednik "starych" końcówek) – Besi
Różnica (która może być ważna) pomiędzy metodami 'awakeFromNib' i' init * 'polega na tym, że zwracają instancję,' awakeFromNib' nie robi. – Matthew
To - (id)initWithCoder:(NSCoder *)decoder
Więc jeśli masz zrobić niestandardowego init, powiedzmy przy użyciu niestandardowego Pager Controller trzeba zrobić tam jak
- (id)initWithCoder:(NSCoder *)decoder {
self = [super initWithCoder:decoder];
return [self initWithViewControllers:@[self.playerViewController, self.categoriesViewController]
andTitles:@[@"Player",@"Categories"]];
}
Czy jestem jedynym, który uważa za dziwne, że domyślny (?) Init nie jest wywoływany z initWithCoder? – brianestey
Nie, to nie jest wyznaczony init, inits powinien wywoływać inny init z (ogólnie) większą liczbą parametrów, które mogłyby wywołać [super init]. W tym przypadku wydaje się, że initWithCoder jest wyznaczonym init – MrJD
initWithCoder: jest wyznaczonym inicjatorem dowolnej klasy implementującej NSCoding. –