我正在尝试从Nib文件创建UIViewController
。在Google上我发现我只能从Nib加载UIView。
但有些人建议我可以创建一个Nib文件(UIView),其文件所有者设置为我们的ViewController
。
这就是我所做的,我没有崩溃,但是View没有显示。
编辑:
试图像这样推动viewcontroller
self.navigationController!.pushViewController(CoolViewController(), animated: true );
但推送时仍显示黑屏
XCode 6.3 - 不使用故事板
答案 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
子类设置多个笔尖。