获取笔尖名称/笔尖到底是啥?

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 应用程序菜单名称

使用多个笔尖在 UITableViewCell 中动态获取行高

你如何从操场上的笔尖获得视野?

将变量从一个笔尖更改为另一个笔尖