从“Nib文件”加载UIViewController

我想从一个Nib文件创build一个UIViewController 。 在Google上,我发现我只能从Nib加载UIView。

但有些人build议我可以创build一个文件所有者被设置为ViewController的Nib文件(UIView)。

这就是我所做的,我没有崩溃,但视图只是不显示。

编辑:试图推这样的viewcontroller

 self.navigationController!.pushViewController(CoolViewController(), animated: true ); 

但是推送时仍然显示黑屏

XCode 6.3 – 不使用故事板

您需要分配您的ViewController ,然后通过告诉iOS的笔尖名称来初始化它。

我看到你在使用Swift; 恐怕我不快,只是客观的。 但是这里是如何在objective-c中完成的:

 [self.navigationController pushViewController [[[CoolViewController alloc] initWithNibName: @"CoolDesign" bundle: nil] autorelease]; 

…“CoolDesign”是您的笔尖的基本名称。 也就是说,在Interface Builder中创buildCoolDesign.xib,Xcode将XML-text-xib编译成CoolDesign.nib,然后告诉initWithNibName只打开@“CoolDesign”。

仅仅告诉Interface Builderdevise文档是UIViewController是不够的。 虽然原则上iOS可以找出你的意思,原则上你也可以有一个UIViewController子类的多个笔尖。

试试这个,你可以用nibName:加载一个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];