获取笔尖名称/笔尖到底是啥?
Posted
技术标签:
【中文标题】获取笔尖名称/笔尖到底是啥?【英文标题】:Get Nib name/What exactly is a nib?获取笔尖名称/笔尖到底是什么? 【发布时间】:2015-08-26 23:12:43 【问题描述】:我正在尝试使用来自的 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 是正确的吗?
谢谢!
【问题讨论】:
nib
文件是您设计视图/视图控制器的资源文件。你可以在这里阅读更多:developer.apple.com/library/mac/documentation/Cocoa/Conceptual/…
我读过这篇文章,但仍然不清楚确切的名称是什么。笔尖名称是否与控制器相同?
是你项目中的文件名。它需要物理存在。如果您完全在代码中构建视图,则无需使用 UIViewController
的初始值设定项。一个普通的 init()
就足够了。
【参考方案1】:
Nibfiles 是用户界面文件的旧名称。它们现在实际上是 .xib 文件(文件扩展名不久前更改了。)但是老学校的开发人员和方法仍然使用术语 nib。
仍然支持 Nibfile(或 XIB 文件,如果您愿意),但大多数人使用情节提要。
如果您在 Xcode 中创建一个用户界面文件并将其保存为名称 ChatAreaCtl.xib
,那么您将能够使用您显示的代码对其进行初始化。
情节提要的等价物是在情节提要中创建一个新场景,定义视图控制器的接口,然后使用instantiateViewControllerWithIdentifier
创建该视图控制器的实例(instantiateViewControllerWithIdentifier
是情节提要等同于 @987654325 @。或者我想我应该为 Swift 说 UIViewController(_nibName:bundle:)
。仍然在使用 Swift 中函数模板的语法。)
【讨论】:
谢谢这清除它。对于我之后的任何新手,这是一个有用的链接...link 术语“nib”具有历史意义,是“NextSTEP Interface Builder”的首字母缩写。 “xib”是“nib”的 XML 版本。一个“nib”只代表一个 viewController,而不是像 Storyboard 那样的多个。 是的。就像所有 Foundation 类中的“NS”前缀代表 NextStep。例如,NSObject 是 NextStepObject 的缩写。 在 ios 领域,XIB 读作“NIB”以上是关于获取笔尖名称/笔尖到底是啥?的主要内容,如果未能解决你的问题,请参考以下文章
Interface Builder 不允许我为标签栏选择笔尖名称
initWithNibName 方法,我可以只使用笔尖名称的前几个字符吗
更改没有单独笔尖的“精简模式应用程序”的 OSX/Cocoa 应用程序菜单名称