加载UIViewController"来自"笔尖文件

时间:2015-05-19 03:28:34

标签: ios xcode uiview uiviewcontroller xib

我正在尝试从Nib文件创建UIViewController。在Google上我发现我只能从Nib加载UIView。

但有些人建议我可以创建一个Nib文件(UIView),其文件所有者设置为我们的ViewController

这就是我所做的,我没有崩溃,但是View没有显示。

编辑: 试图像这样推动viewcontroller

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

但推送时仍显示黑屏

XCode 6.3 - 不使用故事板

2 个答案:

答案 0 :(得分:25)

试试这个,您可以使用UIViewController

加载nibName:

<强>夫特

self.navigationController!.pushViewController(CoolViewController(nibName: "CoolViewControllerNibName", bundle: nil), animated: true )

<强>目标C

CoolViewController*coolViewCtrlObj=[[CoolViewController alloc] initWithNibName:@"CoolViewControllerNibName" bundle:nil];
[self.navigationController pushViewController:coolViewCtrlObj  animated:YES];

答案 1 :(得分:18)

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

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

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

......其中&#34; CoolDesign&#34;是你的笔尖的基本名称。也就是说,你在Interface Builder中创建了CoolDesign.xib,Xcode将XML - text - xib编译成CoolDesign.nib,然后告诉initWithNibName只打开@&#34; CoolDesign&#34;。

仅仅告诉Interface Builder设计文档是UIViewController是不够的。虽然原则上iOS可以弄明白你的意思,但原则上你可以为一个UIViewController子类设置多个笔尖。