使用XCode脚本实例化使用XIB进行设计的视图控制器

使用XCode脚本实例化使用XIB进行设计的视图控制器,xcode,storyboard,xib,nib,Xcode,Storyboard,Xib,Nib,我有一个以前创建的UIViewController子类,它的控件放在一个XIB文件中 我现在想在故事板中使用这个视图控制器,但似乎尽管我可以在故事板中指示视图控制器的类名,但我不能告诉它加载XIB 我不希望将所有内容都从XIB移动到故事板,而是将其保留在单独的XIB中 如何在故事板中获取此UIViewController以加载我的XIB 删除情节提要中视图控制器包含的视图 然后通过配置具有相同名称的nib文件来提供视图 作为视图控制器类。例如,如果视图控制器 类称为MyViewControlle

我有一个以前创建的UIViewController子类,它的控件放在一个XIB文件中

我现在想在故事板中使用这个视图控制器,但似乎尽管我可以在故事板中指示视图控制器的类名,但我不能告诉它加载XIB

我不希望将所有内容都从XIB移动到故事板,而是将其保留在单独的XIB中

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

  • 删除情节提要中视图控制器包含的视图

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


  • 编辑请注意,Swift seed 5开始破坏这项技术,因为它会损坏它要查找的.xib文件的名称。关于解决方法,请参见我的回答:基本上,iOS 8中的名称匹配被打破了,但后来苹果后悔并修复了它,因此iOS 9中的名称匹配再次工作了。这是如何导致视图控制器加载NIB的?试试看!然后通过阅读我的书了解视图控制器如何加载NIB:@user1175914 UIViewController的默认实现调用使用类名命名的XIB。因此,如果ObjC运行时在情节提要中找不到视图控制器,它必须默认像往常一样调用NIB。或者,您可以通过调用loadNibNamed:或其他什么来提供自己的NIB加载实现。@JimThio绘制从视图控制器到下一个视图控制器的序列,并给按钮一个正常操作。在按钮的操作处理程序中,运行segue要么如此,要么不要按照原始问题中的要求将视图控制器的视图分割成单独的nib;只需在情节提要本身中绘制视图控制器的视图。有人在Xcode 6和Swift中成功使用过这种技术吗?视图控制器已加载,但屏幕为黑色。