Загрузка 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];