我正在尝试使用来自的pod在我的应用中实现页面菜单segue this pre-built page menu pod from github
在说明中,它说:
var controller : UIViewController = UIViewController(nibName:"controllerNibName", bundle: nil)
controller.title = "SAMPLE TITLE"
controllerArray.append(controller)
这是我的代码:
var chatAreaCtrl : UIViewController = ChatAreaCtrl(nibName: "ChatAreaCtrl", bundle: nil)
chatAreaCtrl.title = "Chats"
controllerArray.append(chatAreaCtrl)
这让我错误:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: ...(loaded)' with name 'ChatAreaCtrl''
我是编程和Swift的新手,但我想我没有指定Nib是正确的?
谢谢!
答案 0 :(得分:8)
Nibfiles是用户界面文件的旧名称。它们现在实际上是.xib文件(文件扩展名已经改变了一段时间。)但是,年龄较大的学校开发人员和方法仍使用术语nib。
仍支持Nibfiles(或XIB文件,如果您愿意),但大多数人都使用故事板。
如果您在Xcode中创建用户界面文件并使用名称ChatAreaCtl.xib
保存它,那么您将能够使用您显示的代码对其进行初始化。
与故事板等效的是在故事板中创建一个新场景,定义视图控制器的界面,然后使用instantiateViewControllerWithIdentifier
创建该视图控制器的实例(instantiateViewControllerWithIdentifier
是故事板相当于initWithNibName:bundle:
。或者我想我应该对Swift说UIViewController(_nibName:bundle:)
。仍然可以使用Swift中函数模板的语法。)