从"Nib文件"加载UIViewController

Jay*_*iyk 21 xcode xib uiviewcontroller uiview ios

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

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

这就是我做的,我没有崩溃,但视图没有显示.

编辑:试图viewcontroller像这样推

self.navigationController!.pushViewController(CoolViewController(), animated: true );
Run Code Online (Sandbox Code Playgroud)

但它被推动时仍显示黑屏

XCode 6.3 - 不使用故事板

Sud*_*vis 25

试试这个,你可以加载UIViewControllernibName:

迅速

UIViewController

Objective-C的

self.navigationController!.pushViewController(CoolViewController(nibName: "CoolViewControllerNibName", bundle: nil), animated: true )
Run Code Online (Sandbox Code Playgroud)


Mik*_*ord 19

你需要分配你的ViewController,然后通过告诉iOS的名称来初始化它.

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

[self.navigationController pushViewController [[[CoolViewController alloc] initWithNibName: @"CoolDesign" bundle: nil] autorelease];
Run Code Online (Sandbox Code Playgroud)

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

仅仅告诉Interface Builder设计文档是一个不够的UIViewController.虽然原则上iOS可以找出你的意思,但原则上你可以为一个UIViewController子类提供多个nib .

  • @benjaminhallock你能展示一个不需要引用名称的教程,而是使用另一种方式吗?我对n笔很新. (2认同)