Eksperymentuję na temat ładowania plików końcówek do pliku UIViewController
.Ładowanie pliku końcówki wewnątrz obiektu UIViewController
Utworzono oddzielny plik końcówki o nazwie e-mail. Najpierw zauważyłem, że po załadowaniu kontrolera widoku, metoda initWithNibName
nie jest wywoływana. Więc zadzwoniłem go z metody ręcznego jak ta viewDidLoad
,
[self initWithNibName:@"Email" bundle:[NSBundle mainBundle]];
To nie działa. Otrzymałem również ostrzeżenie z informacją, że wynik wyrażenia nie został użyty.
I Szukałem w internecie i natknąłem this artykułu i wdrożył metodę loadView
jak opisano jak tak,
- (void)loadView
{
[super loadView];
UINib *nib = [UINib nibWithNibName:@"Email" bundle:nil];
[nib instantiateWithOwner:self options:nil];
}
Metoda jest wywoływana ale nadal kontroler widoku jest pusty!
Czy ktoś może mi powiedzieć, co tu widzę i jak można to zrobić?
Dziękuję.
UPDATE:
Po pierwsze, dzięki za wszystkie odpowiedzi. Jednak odpowiedzi voromax i svena sugerują, że powinienem automatycznie usunąć segue i załadować końcówki, których nie lubię. Odpowiedź Anila działa, a teraz mam ostatnią przeszkodę, by skakać.
Mam wiele plików końcówek. W zależności od wyboru użytkownika powinien on załadować określoną stalówkę. Więc co starałem się umieścić wszystkie śruty wewnątrz tablicy jak tak,
- (void)loadView
{
[super loadView];
NSArray *nibs = [[NSArray alloc] initWithObjects:
[[NSBundle mainBundle] loadNibNamed:@"Facsimile" owner:self options:nil],
[[NSBundle mainBundle] loadNibNamed:@"Email" owner:self options:nil],
[[NSBundle mainBundle] loadNibNamed:@"Memorandum" owner:self options:nil],
[[NSBundle mainBundle] loadNibNamed:@"ProjectMemo" owner:self options:nil], nil];
self.view = [nibs objectAtIndex:0];
}
i do niego dostęp za pomocą swojego indeksu jak ten self.view = [nibs objectAtIndex:1];
. Ale generuje błąd * Kończenie aplikacji z powodu nieprzechwyconego wyjątku "NSInvalidArgumentException", powód: "- [__ NSArrayM _setViewDelegate:]: nierozpoznany selektor wysłany do instancji 0xd56fd20 '*
Dlaczego ten błąd nadchodzi? Jeśli nie jest to możliwe, jestem otwarty na sugestie.
Jeszcze raz dziękuję. I przepraszam za trochę przeciągania tego.
Nadal nie wspominając o storyboardy i niestandardowe logiki w swoim pytaniu, nie wszyscy będą czytać wszystkie komentarze ... Zobacz zaktualizowaną odpowiedź – voromax