Загрузка UIViewController "из" файла Nib
Я пытаюсь создать UIViewController
из файла Nib. В Google я обнаружил, что я могу загружать UIView из Nib.
Но некоторые говорят о том, что я могу создать файл Nib (UIView), владельцем файла которого является наш ViewController
.
Вот что я сделал, у меня не было сбоев, но вид просто не отображается.
EDIT:
Попробовал нажать ViewController
следующим образом
self.navigationController!.pushViewController(CoolViewController(), animated: true );
Но он все еще показывает черный экран, когда он нажат
XCode 6.3 - Не использовать раскадровки
Ответы
Ответ 1
Вам нужно выделить ViewController
, а затем инициализировать его, указав iOS имя nib.
Я вижу, что вы используете Swift; Боюсь, я не знаю быстро, только objective-c. Но вот как это делается в objective-c:
[self.navigationController pushViewController [[[CoolViewController alloc] initWithNibName: @"CoolDesign" bundle: nil] autorelease];
... где "CoolDesign" - это базовое имя вашего наконечника. То есть вы создаете CoolDesign.xib в Interface Builder, Xcode компилирует XML-текст - xib в CoolDesign.nib, тогда вы сообщаете initWithNibName, чтобы открыть только "CoolDesign".
Недостаточно просто сказать Interface Builder, что проектным документом является UIViewController
. Хотя в принципе iOS может понять, что вы имеете в виду, также в принципе вы можете иметь несколько наконечников для одного подкласса UIViewController
.
Ответ 2
Попробуйте это, вы можете загрузить UIViewController
с nibName:
стриж
self.navigationController!.pushViewController(CoolViewController(nibName: "CoolViewControllerNibName", bundle: nil), animated: true )
Objective-C
CoolViewController*coolViewCtrlObj=[[CoolViewController alloc] initWithNibName:@"CoolViewControllerNibName" bundle:nil];
[self.navigationController pushViewController:coolViewCtrlObj animated:YES];