Próbuję zrobić coś nieco skomplikowanego, ale coś, co powinno być możliwe. Oto wyzwanie dla was wszystkich ekspertów (to forum jest gromadką was wszystkich :)).
Tworzę „komponent” Kwestionariusza, który chcę załadować na NavigationContoller
(mój QuestionManagerViewController
). „Składnik” jest „pusty” UIViewController
, który może ładować różne widoki w zależności od pytania, na które należy odpowiedzieć.
Tak to robię:
- Utwórz obiekt Question1View jako
UIView
podklasę, definiując niektóreIBOutlets
. - Utwórz (za pomocą Konstruktora interfejsów)
Question1View.xib
(TUTAJ JEST GDZIE MOŻLIWY JEST MOJA PROBLEM ). Ustawiłem zarówno te, jakUIViewController
iUIView
klasy klasy Question1View. - Łączę wyloty z komponentem widoku (używając IB).
Zastępuję
initWithNib
moje,QuestionManagerViewController
aby wyglądać tak:- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { if (self = [super initWithNibName:@"Question1View" bundle:nibBundleOrNil]) { // Custom initialization } return self; }
Po uruchomieniu kodu pojawia się następujący błąd:
2009-05-14 15: 05: 37.152 iMobiDines [17148: 20b] *** Kończenie aplikacji z powodu nieprzechwyconego wyjątku
NSInternalInconsistencyException
”, powód:„-[UIViewController _loadViewFromNibNamed:bundle:]
załadowałem końcówkę „Question1View”, ale ujście widoku nie zostało ustawione ”.
Jestem pewien, że istnieje sposób na załadowanie widoku przy użyciu pliku stalówki, bez potrzeby tworzenia klasy viewController.