2012-02-06 54 views
28

我有一个UIViewController子类,我之前创建的子控件是在XIB文件中布局的。使用XCode Storyboard实例化使用XIB进行设计的视图控制器

我想现在在故事板中使用这个视图控制器,但似乎虽然我可以在故事板中指示视图控制器的类名,但我无法告诉它加载XIB。

我宁愿将所有内容从XIB移动到故事板,但将其保留在其单独的XIB中。

如何在故事板中获取此UIViewController以加载我的XIB?

回答

49
  1. 删除故事板中视图控制器包含的视图。

  2. 然后通过配置与视图控制器类具有相同名称 的笔尖文件来提供视图。例如,如果视图控制器 类称为MyViewController,则将您的xib文件命名为 MyViewController.xib。

编辑注意斯威夫特种子5开始打破这种技术,因为它轧液它寻找的.xib文件的名称。 https://stackoverflow.com/a/25539016/341994基本上这个名字匹配是在iOS 8中破解,但后来苹果改写并修复它,以便它再次在iOS 9中运行。

+0

这是如何导致视图控制器加载NIB的? – user1175914 2012-02-06 17:30:04

+4

试试吧!然后通过阅读我的书来了解视图控制器如何加载nib:http://www.apeth.com/iOSBook/ch19.html – matt 2012-02-06 19:04:55

+0

@ user1175914 UIViewController的默认实现调用了用类名命名的XIB。因此,如果ObjC运行时未在故事板中找到视图控制器,则它必须默认为照常调用NIB。或者你可以通过调用loadNibNamed来提供你自己的NIB加载实现: – KPM 2012-07-08 18:55:54

相关问题